在这里所有代码都是正确的,除了while循环不起作用的事实,if和else条件没问题但是while循环不起作用,请帮忙!
#include<iostream>
using namespace std;
int main()
{
int interval=0;
int total;
cout<<"Enter a number = ";
cin>>total;
while(interval!=-1) {
if (total % 10 == 0) {
total=total-10;
total=total/5;
cout<<"total= "<< total<<endl;
cout<<"1st number= "<<total<<endl;
cout<<"2nd number= "<<total+1<<endl;
cout<<"3rd number= "<<total+2<<endl;
cout<<"4th number= "<<total+3<<endl;
cout<<"5th number= "<<total+4<<endl;
} else {
cout<<"re-enter the number"<<endl;
}
}
return 0;
}
答案 0 :(得分:2)
此程序将导致无限循环,因为interval
值未发生变化
while(interval!=-1)
{
// you should change interval value so the loop will end
}
答案 1 :(得分:1)
你永远不会在循环中更改interval
,因此它永远不会结束。
答案 2 :(得分:1)
我认为一旦进入其他状态,它就会卡在这里因为你在if条件下接受数字所以它不会有任何机会重新进入if条件,因为如果条件总是为假。
答案 3 :(得分:0)
您将interval
设置为0
,然后循环直至-1
,但您永远不会在循环中更改其值。
答案 4 :(得分:0)
我想你想留在while循环直到你得到一个合适的号码。因此,不要使用该变量 interval ,而是执行此操作:
while(1)//Make it infinite loop
{
if (total % 10 == 0)
{
total=total-10;
total=total/5;
cout<<"total= "<< total<<endl;
cout<<"1st number= "<<total<<endl;
cout<<"2nd number= "<<total+1<<endl;
cout<<"3rd number= "<<total+2<<endl;
cout<<"4th number= "<<total+3<<endl;
cout<<"5th number= "<<total+4<<endl;
break; //Break out of the loop on receiving the correct number and on performing and printing the calculations
}
else
{
cout<<"re-enter the number"<<endl;
}
}
希望这对你有用!!
答案 5 :(得分:0)
编译器会对此进行优化,因为在whileloop内的任何位置都不会更改间隔,并且您没有提及间隔为volatile。 使用一步一步的调试来同意我的观点。 解决方案:更改while循环内的间隔。