[C++] Operator logiczny || powoduje problemy z wykonywaniem instrukcji if
Ostatnio zmodyfikowano 2014-06-05 21:26
Twixes Temat założony przez niniejszego użytkownika |
[C++] Operator logiczny || powoduje problemy z wykonywaniem instrukcji if » 2014-06-05 21:11:29 Jestem bardzo początkującym programistą C++. Ostatnio popełniłem pewien prosty programik służący do podstawowych obliczeń. Mam z nim jednak pewien problem. Otóż chciałem, aby program automatycznie odrzucał nieobsługiwany znak działania informując o błędzie i nie przepuszczając użytkownika, póki nie wprowadzi prawidłowego znaku. Niestety nie wszystko działa jak trzeba. Tak wygląda fragment kodu odpowiedzialny za tą funkcję: type:; cout << "Znak działania: "; cin >> type; if( type != "+" || "-" || "*" || "/" ) { cin.clear(); cout << "Wprowadź prawidłowy znak działania!" << endl << endl; cin.sync(); goto type; } Problem polega na tym, iż po dodaniu operatora || instrukcja if jest wykonywana ZAWSZE, bez względu na to, czy któryś z warunków jest spełniony. Bardzo proszę o pomoc. :) |
|
pekfos |
» 2014-06-05 21:15:50 Cały warunek jest zawsze spełniony, niezależnie od tego, czy to działa jak chcesz, czy nie. W tym przypadku to drugie. |
|
Twixes Temat założony przez niniejszego użytkownika |
» 2014-06-05 21:22:51 W takim razie jak doprowadzić do sytuacji, w której instrukcja zostanie wykonana, jeśli wartością stringu "type" nie jest ani "+", ani "-", ani "*", ani "/"? |
|
pekfos |
» 2014-06-05 21:23:46 if( type != "+" && type != "-" && etc )
|
|
Twixes Temat założony przez niniejszego użytkownika |
» 2014-06-05 21:26:11 Dzięki, wszystko działa jak należy. :) Zamykam temat. |
|
« 1 » |