c语言中,有两个while(1),只执行在前面的那个,还是都执行?
我来答
分享
举报
4个回答
#热议# 郑爽上《脱口秀大会》敢于自嘲,你怎么看待爽言爽语?
furious_tauren
2011-04-06
关注
如果第二个包含在第一个内,两个都会执行,否则除非第一个while(1)里有goto或者break语句才有机会执行第二个语句
更多追问追答
追问
两个是并列的.......我是想用一个while(1)做时钟信号,另一个while(1)进行别的运算......按你那么说就不知道怎么产生那个时钟了.....
追答
是在window下吗? 这个需要用多线程,Linux下是pthread_create.
本回答由提问者推荐
4
评论(1)
分享
举报
leo421
TA获得超过144个认可 2011-04-06
关注
这个要看代码了。虽说while(1)是死循环,但是中间可以有条件跳出得。这样就可以运行后面那个while了。
谭浩强C语言第三版中有介绍
break和continue语句
break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
【例6.8】
main()
{
int i=0;
char c;
while(1) /*设置循环*/
{
c='\0'; /*变量赋初值*/
while(c!=13&&c!=27) /*键盘接收字符直到按回车或Esc键*/
{
c=getch();
printf("%c\n", c);
}
if(c==27)
break; /*判断若按Esc键则退出循环*/
i++;
printf("The No. is %d\n", i);
}
printf("The end");
}
注意:
break语句对if-else的条件语句不起作用。 这句话是什么意思?2020.3.23
在多层循环中, 一个break语句只向外跳一层。
continue 语句
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。其执行过程可用下图表示。
1) while(表达式1)
{ ……
if(表达式2)break;
……
}
2) while(表达式1)
{ ……
if(表达式2)continue;
……
}
【例6.9】
main()
{
char c;
while(c!=13) /*不是回车符则循环*/
{
c=getch();
if(c==0X1B)
continue; /*若按Esc键不输出便进行下次循环*/
printf("%c\n", c);
}