Условие не оценивается в цикле

Цель условного оператора состоит в том, чтобы распечатать простое текстовое меню и затем сохранить входные данные от пользователя, а также оценить это до состояния цикла.

Если условие не было выполнено, пользователю необходимо ввести int, что приведет к выполнению условия. Вместо этого он просто выходит из цикла.

Я пробовал и тогда и сейчас, если циклы, чтобы выполнить задачу.

Вот код:

#include "stdafx.h"
// Namespaces
using std::cin;
using std::cout;
using std::endl;
using std::istream;
using std::iostream;
using std::ostream;
using std::string;

// Variables
const string new_game = "Start a new game";
const string continue_game = "Continue your game";
const string load_save = "Load a save";

int menu_choice = 0;

const string choice_description = "You choice to";

// MAIN Program

int _tmain(int argc, _TCHAR* argv[])
{

cout << "Welcome to The Forgotten Time" <<endl;
cout << "You have the following options" << endl;

while (menu_choice < 1 || menu_choice > 3 )
{

cout << "1." << new_game << endl;
cout << "2." << continue_game << endl;
cout << "3." << load_save << endl;

cin >> menu_choice;

}

switch (menu_choice)
{
case 1: cout << choice_description << new_game;
case 2: cout << choice_description << continue_game;
case 3: cout << choice_description << choice_description;

}

cin.ignore();
cin.get();

return 0;

}

В конце я хотел бы иметь возможность объединить условный оператор в функции
и передать его через оператор switch, чтобы создать предложение, которое оценивает
Пользователь вводит и отображает их выбор.

-5

Решение

Изначально вы установили:

int menu_choice = 0;

Тогда вы спросите:

if (menu_choice < 1 || menu_choice > 4 )

Выбор меньше чем 1 Итак if block введен
Затем вы получаете пользовательский ввод и выходите из приложения.

0

Другие решения

У вас нет цикла в вашем коде вообще. Просто начальный условный оператор, который вернул бы истинное значение, потому что:

menu_choice=0;

а также,

if(menu_choice<1 ||...)

Вам также не нужно выражение «возврат». Вставьте переключатель () после вашего if ().
Кроме того, вы можете просто удалить второе условие if () и поместить весь контент main () в цикл while () или do.. while ().
Кроме того, переключатель довольно эффективен, если у вас есть отображение на основе меню, которое принимает определенный конкретный набор значений.

0

Удалите условие if, вместо этого используйте цикл do while.

do{
cout << "1." << new_game << endl;
cout << "2." << continue_game << endl;
cout << "3." << load_save << endl;
cin >> menu_choice;
}
while (menu_choice!=0);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector