所有代码都运行正常,但是当其他方法实现时程序关闭,我希望代码再次请求输入,需要帮助!
#include<iostream>
using namespace std;
int main()
{
int total; // this is the number which is the multiple of 10
cout<<"Enter a number = ";
cin>>total;
while(total!=-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;
break;
}
else
{
cout<<"re-enter the number"<<endl;
break;
}
return 0;
}
}
答案 0 :(得分:4)
从其他原因中删除break;
并添加cin>>total;
else
{
cout<<"re-enter the number"<<endl;
cin>>total;
}
答案 1 :(得分:2)
只需从break;
子句中删除else
语句即可。 break;
导致最近的封闭循环(或开关)退出,在您的情况下是while()
循环。
此外,在这种情况下,您将不得不再次要求输入,因此请在total
分支中再次阅读else
。
答案 2 :(得分:0)
通常,break;
会导致程序控制退出包含break
的最内层循环。因此,在您的情况下,它会导致while
完成。
我认为您将if
块与switch
的语法混淆。在switch
块中,break
确实是必要的,以避免单个case
语句的默认跟进行为。
您可能还需要重新定位return 0;
语句:这将导致程序退出,将0
返回给命令shell。
答案 3 :(得分:0)
不要使用break
,而应使用continue
,这将转到循环的顶部。循环中也有一个return语句,因此continue
将跳过这个。要么就是这样,要么您也必须删除return
,并且还需要main
的返回。