Jak przerwać pętlę for?

0

Siema Napisałem prosty program na podanie loginu i hasła który po wpisaniu dobrych danych Wyświetla "Welcome" a po złych "Acces Denied" ale to działa moim problemem jest to ze gdy zapętlam program to nawet po wpisaniu prawidłowych danych prosi mnie o podanie ich ponownie i tu moje pytanie czy pętle for można przerwac jakoś za pomocą komendy break; ? jeśli nie to proszę to inne rozwiązanie tego problemu.Pozdrawiam i z gory dziekuje

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string log ;
    string pass ;
    int Poprawne_Dane = 0 ;
    int i ;


{
    for (i = 2 ;i>=0 ;i--)
    {
        if(Poprawne_Dane == 0)
        {
    cout << "Please enter login :" << endl;
    cin >> log ;
    cout <<"Please enter password : " << endl ;
    cin >> pass ;
    if(log != "shooter0026")
    {
        cout <<"Incorrect Login ! " << endl ;
    } else
    {
        cout << "Login Correct ! " << endl ;
    }
    if (pass != "Milooo123")
    {
        cout <<"Incorrect Password !!! " << endl ;
    }
    else
    {
        cout <<"Password Correct!  " << endl ;
        }
        if(log == "shooter0026" && pass == "Milooo123")
        {
            cout << "Welcome!" << endl ;

        }
        else
        {
            cout <<"Access Denied ! " << endl ;
        }


   cout << "U have " << i << " more tries " << endl ;
    }
    }

        }
   return 0;

}
0

można przerwać pętlę for breakiem

0

A mogę prosić o przykład? Jak to tutaj zastosowac?

1

Nie rozumiem pytania. Skoro wiesz że jest break to wstaw je łaskawie w kodzie tam gdzie jest password correct i tyle. O co ty właściwie pytasz? Ładniej byłoby to zamknąć w sensowne funkcje i zobić pętlę while...
BTW wiesz że ten kod to jakiś WTF? ;] Ciekawi mnie jakbyś to napisał jakby było 1000 użytkowników...

0
Miloszex112 napisał(a):

A mogę prosić o przykład? Jak to tutaj zastosowac?

for (int i=0; i<10; ++i) {
if 
}
0

Zastosowanie zupełnie bez sensu i da się to zrobić lepiej (np. nie używając pętli for) tak jak w twoim przypadku

usunięcie cytowania całego poprzedniego posta - furious programming

0

Sory dopiero zaczynam moją zabawę z C++ :)

1

@Miloszex112 - pętla for służy do przejechania zadanej ilości iteracji bez żadnych kombinacji i do tego się najlepiej nadaje; Jeżeli nie wiesz z góry ile iteracji zostanie wykonane, to skorzystaj z pętli while lub do while - zależy od przypadku; Pierwsza może być całkowicie pominięta, jeśli warunek od razu nie jest spełniony, druga zaś zostanie wykonana przynajmniej raz;

Widziałem już sporo kombinacji z pętlą for i odradzam takie praktyki; Po to jest kilka różnych konstrukcji pętli, aby wybrać odpowiednią dla danego przypadku;


@templas - jak jeszcze raz zobaczę, że cytujesz całe posty, pod którymi umieszczasz swoją odpowiedź lub je komentujesz, to Bóg mi świadkiem znajdę Cię i zabiorę Ci komputer; Ciekawe, czy podczas normalnej rozmowy najpierw powtarzasz czyjeś słowa, a dopiero później wygłaszasz swoją kwestię;

Nie rozumiem i nigdy nie zrozumię po grzyba w kółko powtarzać czyjeś całe posty, skoro odnosimy się do ich całości bezpośrednio pod nimi; Więc nie rób bałaganu, bo to już kolejny wątek, który trzeba sprzątać...

0

Tak trudno wygóglać jak się używa break?

for (...)
{
    if (cośtam)
        break;
    ...
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1