关于C++中循环结构的问题

哪位高手能告诉我下面那个while(1)到底有什么作用,什么情况下能用到它?#include<iostream>#include<cmath>usingnamespace... 哪位高手能告诉我下面那个while(1)到底有什么作用,什么情况下能用到它?
#include<iostream>
#include<cmath>
using namespace std;
int main()
{float a,b,c,d;
cin>>a>>b>>c;
while(a==0)
{cout<<"重新输入"<<endl;
cin>>a>>b>>c;
}
d=b*b-4*a*c;
if(d==0)cout<<"x1="<<-b/2;
else
if(d<0)cout<<"此方程无解"<<endl;
else cout<<"x1="<<(-b+sqrt(d))/2*a<<" "<<"x2="<<(-b-sqrt(d))/2*a<<endl;
cout<<endl;
while(1);
return 0;
}
展开
 我来答
畅景彰b5
2010-12-18 · TA获得超过4374个赞
知道小有建树答主
回答量:839
采纳率:0%
帮助的人:1296万
展开全部
这里这个while(1)的作用就是让这个程序运行以后永远不关闭,说明白一点就是这里的while(1);就是一个永远执行的死循环,对于while语句,你应该知道while(判断式){...};是在判断式满足的条件下执行后面的循环体内容的吧,譬如说有一段程序
int i=1;
while(i<=10)
{
i++;
}
这个就是以i的值为判断条件执行的循环,而i<=10这个表达式的值只有0或者1,判断满足就是1,判断不满足就是0,你这里的while(1)就相当于一个判断表达式永远满足的循环,等同于while(1==1);
至于while(1)的用法,一般不能像你这个程序里面这样用,而是用于设计一个你不知道什么时候推出的时候,用while(1)循环,而使用的时候必须在循环中有相应的break语句结束循环
譬如说你有一个菜单程序,选择1到5这5个菜单项,当你选择5的时候就是退出程序,那么你就可以用这样的形式
char ch;
while(1)
{
printf("1.xxxxxx\n");
printf("2.xxxxxx\n");
printf("3.xxxxxx\n");
printf("4.xxxxxx\n");
printf("5.退出\n");
ch=getch();
if(ch=='6')
break;
}
这就是while(1)最常用的方法
当然譬如刚才前面那个程序
int i=1;
while(i<=10)
{
i++;
}
你也可以改为
int i=1;
while(1)
{
i++;
if(i>10)
break;
}
效果是一样的
峰吹过地无痕
2010-12-18 · 超过33用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:88.3万
展开全部
while(1);无限循环的意思.
这个程序大概是想让结果停留在最后.
这样结果会一直在屏幕上保留
因为程序在跑空循环
如果C中用getch();比较好

while(1){
... //反复执行的代码
...
}

一般如果你想让程序反复执行一段程序就可以这么写.
也可以用于延时程序,即让程序跑N次空循环(因为程序跑空循环也是消耗时间的)
到N之后可以在内部break;跳出

这个用处很多 写多了就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hglg1979
2010-12-18 · TA获得超过1074个赞
知道小有建树答主
回答量:1274
采纳率:0%
帮助的人:698万
展开全部
1在逻辑表达式中就是 "真" 的意思

while(1); 就是无限循环了。。。后面直接只有1个分号,也就是说循环体是个空语句,什么都不干,无限循环。。。

不知道程序里放这句干啥?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NewUserFF
2010-12-18 · TA获得超过237个赞
知道答主
回答量:161
采纳率:0%
帮助的人:163万
展开全部
就是不让程序关闭,一直循环下去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式