Nie ma zapisanego warunku dla while
while (?) { // ... }
pobierasz dane do zmiennej x
cin >> x;
a porównujesz zmienną pin
if (pin == pin_baza)
Zmienna x jest zbędna w Twoim kodzie, zapisz po prostu (użyj zmiennej pin)
cout << "Wprowadź czterocyfrowy PIN: "; cin >> pin;
dalej nie zapisałeś poprawnie while, w tym przypadku brakuje zapisu
while (pin != pin_baza) // Pętla będzie się powtarzać, dopóki wprowadzony PIN jest niepoprawny { }
cout << "Wprowadź czterocyfrowy PIN: "; cin >> pin; while(pin != pin_baza) // Pętla będzie się powtarzać, dopóki wprowadzony PIN jest niepoprawny { cout << "PIN niepoprawny. Wprowadź ponownie: "; cin >> pin; // Ponowne wczytanie PIN-u } // Po wyjściu z pętli oznacza to, że wprowadzony PIN jest poprawny cout << "PIN POPRAWNY" << endl;
nie wyświetla siie komunikat pin poprawny
dzieje się tak, ponieważ gdy pin jest wprowadzony poprawny, warunek w
while (pin != pin_baza)
staje się nieprawdziwy (false) i pętla while zaprzestaje swoje działanie i wykonywanie kodu przechodzi do kolejnej linii po znaku } czyli w Twoim przypadku do return 0, co w zasadzie kończy działanie programu.
while(true) // Pętla będzie się powtarzać, dopóki wprowadzony PIN jest niepoprawny { // ... kod we wnętrzu while } // while false return 0;
Sprawdź [ działający kod on-line ]
#include <iostream> #include <string> using namespace std; int main() { string pin, pin_baza = "2817"; // Wcześniej zadeklarowany poprawny PIN cout << "Wprowadź czterocyfrowy PIN: "; cin >> pin; while(pin != pin_baza) // Pętla będzie się powtarzać, dopóki wprowadzony PIN jest niepoprawny { cout << "PIN niepoprawny. Wprowadź ponownie: "; cin >> pin; // Ponowne wczytanie PIN-u } // Po wyjściu z pętli oznacza to, że wprowadzony PIN jest poprawny cout << "PIN POPRAWNY" << endl; return 0; }
W takim razie sprawdź taki zapis [ kod on-line ]
#include <iostream> #include <string> using namespace std; int main() { string pin, pin_baza = "2817"; while(true) // nieskończona pętla while { cout << "Wprowadź czterocyfrowy PIN: "; cin >> pin; if (pin != pin_baza) { cout << "PIN niepoprawny. Wprowadź ponownie!" << endl; } else { cout << "PIN POPRAWNY" << endl; break; // przerwanie działania while } } return 0; }
kod działa poprawnie [ link ]
nie wyswietla sie ostatni komunikat
w sensie, że program kończy działanie i zamyka się okno?
jeśli tak, sprawdź
#include <iostream> #include <string> using namespace std; int main() { string pin, pin_baza = "2817"; while(true) // nieskończona pętla while { cout << "Wprowadź czterocyfrowy PIN: "; cin >> pin; if (pin != pin_baza) { cout << "PIN niepoprawny. Wprowadź ponownie!" << endl; } else { cout << "PIN POPRAWNY" << endl; break; // przerwanie działania while } } // Oczekiwanie na dodatkowe wejście użytkownika przed zamknięciem konsoli cout << "\nNaciśnij dowolny klawisz, aby zamknąć program...\n"; cin.ignore(); // Ignorowanie poprzedniego znaku nowej linii w buforze wejścia cin.get(); // Oczekiwanie na dodatkowe wejście return 0; }
Opisałem już Tobie tutaj dlaczego Twój kod nie działa
#include <iostream> #include <string> using namespace std; int main() { string pin, pin_baza = "2817"; int x; cout << "Wprowadz czterocyfrowy PIN: "; cin >> pin; while (pin != pin_baza) { if (pin != pin_baza) { cout << pin << " PIN NIEPOPRAWNY WPROWADZ PONOWNIE" << endl; } else { cout << " PIN poprawny" << endl; } cin >> pin; } return 0; }
sprawdź jak działa pętla while
Mieliście na lekcjach w ogóle coś o pętlach while? A może jeszcze jakiś innych pętlach?
@Killer,
tyle że pętli while (true) raczej nie moge użyć bo na lekcji nie miałam
ale zawsze się możesz sama douczyć? Chyba w szkole tego nie zabraniają, przecież możesz powołać się np. na Nasze forum, że dowiedziałaś się tego tutaj.
o pętlach while tak ale nie wspominał o while(tue)
bez obrazy, ale kiepskiego macie nauczyciela od informatyki, bo nieskończone pętle to żadna tajemna wiedza.
Pierwszy lepszy kurs o tym wspomina już na wstępie np.
wykorzystana tu liczba 1 odpoiwada wartości logicznej (boolean) true.
93,655 zapytań
142,575 odpowiedzi
323,099 komentarzy
63,171 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj