Pętla "do while" zawsze się powtarza, a ma się zakończyć przy wybraniu 1, 2 bądź 3

0

Robię sobie zadanka z książki i pętla do while mi nie śmiga:

#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
	int i;
	do
	{	
			cout << "Menu Gry:";
				Sleep(1000);
			cout << endl << endl;
			cout << "1. Nowa gra";
				Sleep(500);
			cout << endl;
			cout << "2. Wczytaj gre";
				Sleep(500);
			cout << endl;
			cout << "3. Koniec gry";
			cout << endl;
				Sleep(500);
			cout << endl;
			cout << "WYBIERZ (1, 2, 3): ";
			cin >> i;
		
		
	
	}while ( i!='1' || i!='2' || i!='3' );

    return 0;       
}

Pęta zawsze się powtarza a ma się zakończyć przy wybraniu 1, 2 bądź 3.

7

Podstawy logiki. Jak działa OR:

p q p ∨ q
0 0 0
0 1 1
1 0 1
1 1 1

Więc

znak i!='1' i!='2' i!='3' i!='1'i!='2'i!='3'
1 0 1 1 1
2 1 0 1 1
3 1 1 0 1
każdy inny 1 1 1 1

Użyj AND - && - z odpowiednimi warunkami i przeczytaj dyskusję tutaj: https://4programmers.net/Forum/1532252

0

Dzięki za pomoc :) Działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1