循环中断时的C ++

时间:2014-09-25 02:21:21

标签: c++ loops while-loop break repeat

我的目标是创建一个C ++程序,该程序重复执行一大块代码,直到用户输入适当的值并使用while循环执行此操作。我的代码只是反复重复,即使我输入“0”,它仍然会重复循环中的代码块。

这是我的源代码:

#include <iostream>
using namespace std;

int main()
{
    int num = 0;
    bool repeat = true;
    while (repeat = true)
    {
        cout << "Please select an option." << endl;
        cout << "[1] Continue Program" << endl;
        cout << "[0] Terminate Program" << endl;
        cout << "---------------------" << endl;

        repeat = false;

        cin >> num;
        cout << endl;

        if (num = 1)
        {
            repeat = true;
            //execute program
        }
        else if (num = 0)
            repeat = false;
        else
            cout << "Please enter an appropriate value.";
    }

    return 0;

}

3 个答案:

答案 0 :(得分:2)

  while (repeat = true)
                ^^

是你的一个问题:

  while (repeat == true)
                ^^

通过赋值,条件始终求值为真。

有些人主张使用 Yoda condition 来避免这些拼写错误。另一种方法是简单地编译具有最高警告级别的程序:

-Wall

答案 1 :(得分:2)

检查您的操作员。您在while和if参数中使用赋值运算符=而不是比较运算符==

答案 2 :(得分:1)

while (repeat = true)

while条件中,您使用的是赋值运算符=,而不是等式==

它是有效的C ++语法,但不是您所期望的。 repeat已分配给true,因此条件始终为真。

if (num = 1)else if (num = 0)中存在相同的错误。