цикл не завершается в коде - С++
есть проблема, не могу завершить цикл не смотря то что там есть break; помогите пожалуйста[![введите сюда описание изображения][1]][1]
#include <string>
#include <iostream>
#include <ctime>
//not - !
//and -&&
// or -||
using namespace std;
int main()
{
int a, b, c, d, g;
unsigned rand_value = 11; //а это до скольки работает рандом ну там от 0 до 11
srand(rand_value); // рандомизация генератора случайных чисел
c = 1 + rand() % 10;// рандом чисел
d = 1 + rand() % 11;// рандом чисел
g = 1 + rand() % 6;// рандом чисел
a = 800;
cout << "you have " << a << " dollars" << endl;
cout << "enter 1 if you are want to play a game" << endl;
cin >> b;
while(true)
{
if ( b == 1)
{
a -= 100;
while (a > 100)
{
cout << " start the game" << endl;
cout << "|| " << c << " || " << d << " || " << g << " ||" << endl;
if (c == d == g)
{
cout << " yes!" << endl;
a += 300;
break;
}
else if (c == d != g || c == g != d || g == d != c)
{
cout << " so - so" << endl;
a += 150;
break;
}
else
{
cout << " No" << endl;
break;
}
// этот кусок кода отвечает за выигрыш и проигрыш
if (a >= 1500)
{
cout << " you win!";
break;
return 0;
}
else if (a < 100)
{
cout << " game over";
break;
return 0;
}
}
}
else
{
cout << " good buy" << endl;
}
}
}
Ответы (2 шт):
Автор решения: LIshy2
→ Ссылка
break выходит только из одного цикла, внешний цикл будет работать бесконечно.
Автор решения: el_madcapo
→ Ссылка
Как указал LlShy2, у вас отсутствует break во внешнем цикле. Таким образом у вас получается:
while(true)
{
if ( b == 1)
{
a -= 100;
while (a > 100)
{
// ....
}
}
else
{
cout << " good buy" << endl;
// ---> Наверное, здесь нужен break <----
}
}
Получается бесконечный внешний цикл. Но беда еще в том, что присваивание переменной b у вас происходит до цикла. И поэтому в цикле она у вас постоянно равна 1. Вам необходимо переделать программу так, чтобы ввод был в цикле:
while(true){
cout << "Введите 1 для продолжения";
cin >> b;
if (b == 1) {
// ваш код
}
else {
// ваш код good bye...
break;
}