1不是死循环。循环结束条件i=11的时候,判读
i<=10表达式为false,跳出循环。i++,总会到11
2是死循环,有分号,i永远i<=10。
3死循环。因为它循环结束的条件必须是i>=0表达式为false,也就是i<0然而i=0,以后每次都i++,这样i肯定大于0结束条件肯定不成立。
4死循环。for(;;)它没有循环结束条件。
但是循环体有个跳出循环的条件。就是i=0。因为i=0是个赋值表达式,它的值为0,所以一直为
false所以条件不满足,一直执行不了break
所以就一直跳不出循环。是死循环。
要知道,浮点的不是精确值,只可以说是近似值,它在内存中的存储方式和整形是不同的,在它的自加过程中,没有等于10,你可以把程序改成这样就看得清楚了
int i=0;
for(double x=01;x!=10;x+=01){
Systemoutprintln(x);
i++;
if(i==10){break;}
}
只要指定条件为 true 都执行语句块。
for (initialization; test; increment)
statements 参数
initialization 必选项。一个表达式。该表达式只在执行循环前被执行一次。
test 必选项。一个 Boolean 表达式。如果 test 是 true,则 statement 被执行。如果 test 是 false,则循环结束。
increment 可选项。一个表达式。在每次经过循环的最后执行该递增表达式。 statements 可选项。test 是 true 时,要执行的一个或多个语句。可以是复合语句。
说明 循环要执行确定的次数,通常使用 for 循环。注意,for循环要求必须知道循环次数,楼主的程序中for(;;)并不知道循环次数,也没有给出循环结束的条件,所以,要作出相应的修改才可以哦。
你的for语句后面少打了一个大括号!
你的程序还有其他问题:for循环改成这样试试
for(;end==1;i++)//在此之前的语句都没执行
{
printf("请输入你要猜的数字:");//for循环中也只执行了这句
scanf("%d",&guess);//这句为什么不停??
if(guess>num) printf("你输入的数大了");
if(guess<num) printf("你输入的数小了");
if(guess==num) {end=1;printf("猜对了,这个数就是%s,你猜了%d次!"),num,i;}
}
以上就是关于C++题,下面4个程序中,哪三个是死循环程序哪个不是死循环程序为什么全部的内容,包括:C++题,下面4个程序中,哪三个是死循环程序哪个不是死循环程序为什么、谁能帮我看下这个Java 程序 for循环 为什么是死循环啊for(double x=0.1;x!=1.0;x+=0.1)、求解释,一段c语言程序!出现死循环了!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)