Cześć, jestem jeszcze dość świeży w temacie C++. Miałem za zadanie napisać program zawierający menu, który przy wyborze nieistniejącej opcji, wyświetla menu od nowa. Przy użyciu pętli for lub while wszystko działało bez problemu. Natomiast podczas używania pętli do..while, program działa tylko dla opcji 2 lub 4, podczas gdy 1 i 2 traktuje jako nieistniejącą. Jakieś pomysły dlaczego tak może się dziać?
Poniżej umieszczam swój kod:
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <conio.h>
#include <windows.h>
using namespace std;
int main()
{
char wybor;
cout<<endl;
cout << "MENU GLOWNE" << endl;
cout << "1. Danie 1" << endl;
cout << "2. Danie 2" << endl;
cout << "3. Danie 3" << endl;
cout << "4. Danie 4" << endl;
cout<< "Wybierz danie z listy: ";
cin >> wybor;
do
{
cout<<"Nie ma takiej opcji w menu!";
Sleep(1000);
system("cls");
cout<<endl;
cout << "MENU GLOWNE" << endl;
cout << "1. Danie 1" << endl;
cout << "2. Danie 2" << endl;
cout << "3. Danie 3" << endl;
cout << "4. Danie 4" << endl;
cout<< "Wybierz danie z listy: ";
cin >> wybor;
{
if(wybor=='1')
cout <<"Wybrane danie to Kotlet schabowy z ziemniakami i mizeria";
else if (wybor=='2')
cout<<"Wybrane danie to Rosol z makaronem";
else if (wybor=='3')
cout<<"Wybrane danie to Pizza Neapolitana";
else if (wybor=='4')
cout<<"Wybrane danie to Piers z kurczaka z frytkami i surowka";
}
}
while(wybor!='1'&&wybor!='2'&&wybor!='3'&&wybor!='4');
return 0;
}