Powrót do zadania, nie petlą.
Ostatnio zmodyfikowano 2011-01-29 14:07
Krump Temat założony przez niniejszego użytkownika |
Powrót do zadania, nie petlą. » 2011-01-26 19:14:18 Część...
Słuchajcie była jakaś funkcja, albo jak zapisać w returny(), aby po wykonaniu if, zawartego w pętli while program wrócił do początku pętli, a nie leciał dalej? Opcjonalnie aby wrócił do wpisania danych.
Kod:
cout << "Podaj hasło/pin: "; while( !( cin >> a ) ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == 67241599 ) { cout << "Dane to: " << b << endl << endl; } else { if( a > 0 && a <= 1000 )
|
|
szyx_yankez |
» 2011-01-26 19:45:03 Powiązać to z do...while
cout << "Podaj hasło/pin: "; do { while( !( cin >> a ) ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == 67241599 ) { cout << "Dane to: " << b << endl << endl; } } while( a == 67241599 )
A jeżeli nie pętlą to pozostaje 'goto'. |
|
Krump Temat założony przez niniejszego użytkownika |
» 2011-01-26 21:02:56 niestety zakończeniem tej pętli do ...while jest chyba, że zrobię ;p while( a != b || a == 67241599 )
;p sprawdzę czy działa, dzięki z góry. A właśnie, bo to: zapobiega, aby ktoś nie wpisywał liter, ale chciałem początkowo zrobić, że amdin albo wtajemniczony wpisze jakiś słowo, które ustalę np krump i wtedy zrobi co chciałem z pokazaniem tego pinu, lecz jak dam: string c = "krump"; cout << "Podaj hasło/pin: "; while( !( cin >> a ) || c ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == c ) { cout << "Dane to: " << b << endl << endl; } else { if( a > 0 && a <= 1000 )
to wywala błąd, że nie można dać w deklaracji pętli dwóch różnych typów zmiennych, jak się z tym uporać? Bo wolał bym słowo niż liczby na to obejście ;p |
|
jsc |
» 2011-01-26 21:06:52 Co tu wpisać, aby program wrócił do while(!(cin>>a))
continue; |
|
szyx_yankez |
» 2011-01-26 21:23:50
Oh tak?
Spróbuj sobie skompilować ten kod:
int main() { int a = 10; while( a ) { a--; } if( true ) { continue; } }
to wywala błąd, że nie można dać w deklaracji pętli dwóch różnych typów zmiennych, jak się z tym uporać? Bo wolał bym słowo niż liczby na to obejście ;p |
Bardzo dobrze, według Ciebie zmienna 'a' jest jednocześnie typu 'int' i 'string'.
[/code] |
|
jsc |
» 2011-01-26 21:31:23 Chcesz ze mnie zrobić idiotę? To skompiluj to: #include <iostream> #include <conio.h>
using namespace std;
int main() { int a = 10; while( a ) { if( true ) { continue; }
a--; }
return 0; }
|
|
szyx_yankez |
» 2011-01-26 21:37:17 string c = "krump"; cout << "Podaj hasło/pin: "; while( !( cin >> a ) || c ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == c ) { cout << "Dane to: " << b << endl << endl; } else { if( a > 0 && a <= 1000 )
|
Co tu wpisać, aby program wrócił do while(!(cin>>a))
continue; |
Czyli wyszło by:
string c = "krump"; cout << "Podaj hasło/pin: "; while( !( cin >> a ) || c ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == c ) { cout << "Dane to: " << b << endl << endl; continue; } else { if( a > 0 && a <= 1000 )
|
|
jsc |
» 2011-01-26 21:42:23 string c = "krump"; cout << "Podaj hasło/pin: "; for (;;) { while( !( cin >> a ) || c ) { cin.clear(); cin.sync(); system( "cls" ); cout << "Pin cyfrowy!" << endl << "Podaj hasło/pin: "; } if( a == c ) { cout << "Dane to: " << b << endl << endl; continue; // do while( !( cin >> a ) || c ) dojdzie przez for (;;) } break; //Jeśli poszło wszystko wyskoczy z pętli }
Zadowolony? |
|
« 1 » 2 3 |