do while死循环

i=1;
do

i=i+1
}while(i=10);
为什么会死循环呢?第一次就不满足条件了不就直接出去了吗?

【以下回答由 GPT 生成】

问题的原因在于在do-while循环的条件中使用了赋值运算符"=",而不是相等比较运算符"=="。在C语言中,赋值运算符会将右边的值赋给左边的变量,并且返回赋值后的值。

在给i赋值为10后,条件判断为真,因此继续执行循环体内的语句。在循环体内,i又被赋值为10。然后再次判断条件,仍然为真,继续执行循环体内的语句。这样就形成了一个死循环。

要解决这个问题,只需将条件中的赋值运算符改为相等比较运算符即可。修改后的代码如下:

i = 1;
do {
  i = i + 1;
} while (i == 10);

这样就可以正常跳出循环了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

while里面的条件表达式
i=10是赋值表达式,并且一直不为0,所以是死循环。
换成关系运算符>或< 或>=或<=或==

应该是两个等于号,一个是赋值哦,在这也祝你七夕快乐