请大家帮我看一下为什么这个c语言是死循环啊

如题所述

因为while(i < 10)后面的循环体没有花括号,这种情况下while循环体只包含条件后面的那一句,也就是sum = sum + 1,并不包含i ++,所以i的值永远都是1,不可能满足退出循环的条件。

若要避免死循环,应改为

while(i < 10) {    //注意这里的花括号
    sum = sum + 1;
    i ++;
}                   //注意这里的花括号

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-08
以上while循环体仅有一条语句,即sum=sum+1;
而i的值常为1,死循环。
第2个回答  2019-06-08
因为i++不是while循环体的一部分。
while只重复执行sum=sum+1;而i永远等于1。追问

那什么情况下他就包括i++了呢

追答

这样:
while(i < 10)
{
sum = sum + 1;
i++;
}
表示每次都执行{}中的所有语句。
{}称为一个语句块。

语句块中的块是一块,一起的意思,即一起执行,同时执行。

请大家帮我看一下为什么这个c语言是死循环啊
因为while(i < 10)后面的循环体没有花括号,这种情况下while循环体只包含条件后面的那一句,也就是sum = sum + 1,并不包含i ++,所以i的值永远都是1,不可能满足退出循环的条件。若要避免死循环,应改为 while(i < 10) { \/\/注意这里的花括号 sum = sum + 1; i ++;} \/...

c语言,为何这是死循环?
while(1)表示无条件执行循环(因为1表示真),而它的循环体是后面跟着的那个语句:也就是printf("%d",k-=3);所以程序会一直运行printf("%d",k-=3); 永远出不来。这条语句就相当于 while(1){ printf("%d",k-=3);} 加上大括号里面可以加多个语句作为循环体,如果没加大括号就是while后面的...

c语言,这为什么是个死循环啊,输入-1也跳不出去
While salary[i]不等于-1时执行,你输入的命令,即使你输入了-1,下次循环的位置指向了i下一位置了(i+1),你输入元素的位置是当前指向位置的上一个位置 应该改为 While salary[i+1] !=-1

C语言陷入死循环的原因
这个c的最大正整数只能到127,c<255永远成立。情况是:c++到127之后变为了负数(称为算术溢出),一直加又从0开始了,所以死循环。把 char c=10;改为 int c;赋值没用,因为for循环又重新赋值了。至于出现蜂鸣声,是打印的字符中有一个(大概是4)代表beep,就是蜂鸣,结果就是打不出字符,出现蜂...

这个C语言程序输入字母会出现死循环,为什么?怎么办?
输入数据后,判断一下scanf函数的返回状态,返回0则读取失败。失败的原因有很多可能,比如你的这道例子,指定输入数字,但是却输入了字符,就会返回0,而且scanf不会有动作。由于num没有初始化,所以它是一个垃圾值,这就是死循环的原因。另外,如果想要输入指定字符退出的话,在多加一个判断即可。

C语言高手进 帮我看看为什么死循环了
经过实验,m初始化后用1.00测试并非死循环啊。m初始化为0时:1.00 9Press any key to continue

c语言,为什么是死循环
我是这么理解的:while(3<=x<=4)3<=x 要么真为1 要么假为0,结果肯定<4;所以,3<=x<=4为真

C语言死循环
应该break而不是continue 2、while后边少了一个{ i++后也少了一个} 使得循环内i得不到变化,所以死循环。3、不应该那么打印。正确代码如下:include<stdio.h> void main(){ int i,j,k;i=1;while(i<=100){ for(j=2;j

求大家帮忙看看这个C语言题目啊,蟹蟹蟹蟹~
这是会发生死循环的。因为十进制小数是不能被准确表示为二进制的。这导致30个0.1相加,不是严格地等于3.0,(即使到了应该为3.0的那个点,因为误差的原因,不是与实数3.0相等)所以,就会发生“死循环”了。所以,通常情况下,要避免直接比较二个实型量x,y是否相等,而是改为比较二个实型量之...

C语言死循环
for(i=1;;i++){ if(++i%2==0) continue;\/\/因为每次循环都执行这个语句,不执行下面语句,进而执行下一次循环 if(++i%3==0) break; \/\/这一句永远也不执行,所以跳不出循环,出现死循环了。}

相似回答