Miért nem teljesül a másik állítás? C++
int main()
{
string valasztas;
cout << "Adja meg az elso szamot!" << endl;
cin >> elsoszam;
cout << "Adja meg a masodik szamot!" << endl;
cin >> masodikszam;
cout << "Valassza ki az alabbiakbol, mit szeretne tenni" << endl << "szorzas" << endl << "osztas" << endl;
cin >> valasztas;
do
{
cout << "Ilyen opcio nincs" << endl;
cin >> valasztas;
break;
{
}
}
while (!(valasztas != "szorzas") || (valasztas != "osztas")) ;
if (valasztas == "szorzas")
{
int szorzat;
szorzat = elsoszam*masodikszam;
cout << "Az " << a << "es " << b << " szorzata egyenlo:" << endl;
cout << elsoszam << szorzas << masodikszam << egyenlo << szorzat << endl;
}
if(valasztas == "osztas")
{
int osztas;
#define osztasjel "/"
osztas = elsoszam/masodikszam;
cout << "Az " << a << "es" << b<< "hanydosa egyenlo:" << endl;
cout << elsoszam << osztasjel << masodikszam << egyenlo << osztas << endl;
}
}
Ez a program, és ha beírom a szorzást, tökéltesen megy...de ha az osztás szót írom be, azt írja nincs ilyen opció ahogy megadtam neki. Ez miért nem működik ez az OR operátor itt? Valaki segíteni tud, vagy más megoldási ötlete van?
Ez alapján MINDIG ki fogja írni, hogy nincs ilyen opció:
cin >> valasztas;
do
{
cout << "Ilyen opcio nincs" << endl;
cin >> valasztas;
while (valasztas != szorzas && valasztas != osztas) {
cout << "ilyen opcio nincs\n";
cin >> valasztas;
}
...
Megoldható (mellesleg az előzőben véletlen nem tettem idézőjelbe a stringet, de gondolom feltűnt):
bool input_hiba = true;
do {
__cout << "Valassza ki az alabbiakbol, mit szeretne tenni" << endl << "szorzas" << endl << "osztas" << endl;
__cin >> valasztas;
__input_hiba = (valasztas != "szorzas") && (valasztas != "osztas");
__if (input_hiba) {
____cout << "Ilyen opcio nincs" << endl;
__}
}
while (input_hiba);
Mellesleg azt javasolnám, hogy szokd meg az elöltesztelő ciklust (ha a feladat külön nem kéri a másikat), mert általában olvashatóbb. (nem szentírás, de inkább ezt szokták szeretni)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!