do{
cout << "your number"; cin >> z;
if (z > 4){
cout << "invalid answer" << endl;}
else if (z == 4){
cout << " no" << endl;}
else {
cout <<"great!" << endl; }
} while (z != 3, 2, 1);
}
在我看来是这样的:提出“你的号码”,直到z为3或2或1?怎么了?'
答案 0 :(得分:5)
while (z != 3, 2, 1);
你的状况不对,应该是:
while (z != 3 && z != 2 && z != 1);
如果您使用逗号,它将评估(计算)由它们分隔的所有表达式,并将使用最后一个表达式。
在这种情况下
(z != 3, 2, 1)
它将评估z!= 3,然后是2,最后将使用1,你的同时会看起来像这样:
while(1);
这是一个无限循环。
答案 1 :(得分:0)
问题可能在于while条件。表达式"z != 3, 2, 1"
的返回值将计算为“1”,这在C ++中表示为true。所以会有一个无限循环。尝试重写cond。进出口。比如"z != 3 || z != 2 || z != 1"
。