C++虽然循环中断
我的目标是创建一个C++程序,它会重复执行一段代码,直到用户输入适当的值并使用while循环执行。我的代码只是一遍又一遍地重复着,即使我输入“0”,它仍然会重复循环中的代码块。C++虽然循环中断
这里是我的源代码:
#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;
}
while (repeat = true)
在while
情况下,您正在使用的赋值运算符=
,没有平等==
。
它是有效的C++语法,但不是您所期望的。 repeat
被分配给true
,所以条件总是如此。
if (num = 1)
和else if (num = 0)
中存在相同的错误。
切换所有警告并听取它们? – 2014-09-25 02:25:17
这是正确的答案,并且比其他更具描述性。 – Chantola 2014-09-25 02:25:31
谢谢!我对编程相当陌生,所以非常感谢帮助! – 2014-09-25 02:28:08
while (repeat = true)
^^
是你的问题之一:
while (repeat == true)
^^
某项任务,条件计算结果始终为真。
有人主张使用Yoda condition以避免这些错别字。另一种方法是简单地编译您的程序的最高警告级别:
-Wall
切换所有警告并聆听它们? – 2014-09-25 02:26:10
@πάνταῥεῖ:事实上或者说,玩Yoda! ;-) – 2014-09-25 02:27:52
Aww,绿色我在我脸上发现;-) ... – 2014-09-25 02:29:28
检查您的运营商。您在while和if参数中使用赋值运算符=
而不是比较运算符==
。
当您使用调试器逐行执行程序时,您发现了什么? – 2014-09-25 02:23:07