条件不在循环中评估

时间:2014-11-09 15:01:46

标签: c++

条件语句的目的是打印出一个简单的基于文本的菜单,然后存储来自用户的输入,并将其评估为循环的条件。

如果条件不满足,则应提示用户输入int数字,这将导致条件为真。相反,它只是退出循环。

我已尝试过while和now,如果循环完成任务。

以下是代码:

#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语句传递它以创建一个评估的句子 用户输入并显示他们的选择。

3 个答案:

答案 0 :(得分:0)

你的代码根本没有循环。只是一个初始条件语句,它将返回一个真值,因为:

menu_choice=0;

和,    

if(menu_choice<1 ||...)

您也不需要“返回”声明。在if()之后插入一个switch()。 此外,您可以删除第二个if()条件并将整个main()内容放在while()或do..while()循环中。 此外,如果您有一个基于菜单的显示器,它可以获取某些特定的离散值集,那么开关非常有效。

答案 1 :(得分:0)

最初你设置:

int menu_choice = 0; 

然后你问:

if (menu_choice < 1 || menu_choice > 4 )

选项小于1,因此输入if block 然后,您将获得一些用户输入并退出应用程序。

答案 2 :(得分: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);