c语言问题

2025-03-23 07:21:02
推荐回答(5个)
回答1:

#include
main()
{int i=0,s=0;
for(①;②;③) /*此处不用判断条件就继续执行,因为条件语句为空*/
{if(i==3||i==5)continue;/*如果条件成立就做continue语句,continue意思为 继续循环,程序跳转到for当中的条件判断②处,由于条件为空语句,所以不需判断*/
if(i==6)break; /*i为6才跳出循环*/
i++;
s+=i;
};printf("%d\n",s);
}
刚开始,i为0,前两个if都不执行,i 自加1,循环三次,i为3,第一个if条件成立,
此后一直执行continue和for中的②处,程序进入死循环。

回答2:

因为你的for()循环的条件没有写,也就是说你没定义for循环到何时才能结束循环,那么程序就认为你的循环条件永远为真,那么就一直执行循环,所以就成了死循环咯

回答3:

等于3的时候,系统进入死循环。因为continue语句直接跳转到for循环,不再执行i++的处理。这样i就永远保持3不变了,导致(i==6)的break语句永远执行不到。所以进入死循环。

回答4:

for(;;) 进入FOR循环
{if(i==3||i==5)continue;

因为FOR 中没有限制条件, 所以“或”I==3||I==5永远是错的,既然错了,continue回到FOR,继续判断,只有当IF为真的时候,才越过continue继续执行下边的语句,因为FOR没条件,所以IF永远没有真的时候,
下边的语句永远不执行

if(i==6)break;
i++;
s+=i;
};printf("%d\n",s);

回答5:

先不看s值的变化,只看i,i从0一直增加到3的时候,满足第一个if的条件,于是执行continue语句,返回for的中进行判断,而for中没有使循环结束的条件,所以会一直循环下去,而后面的i++在i的值为3以后是不会再被执行的了。