编了一段c语言的循环语句,不知道为什么只能循环一次

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:50:20
帮忙看看。谢谢了
#include "stdio.h"
main()
{
float z=1,i=0;
while(i<=18)
{z=(z+1)*2;
i++;
if(i=18)break;}
printf("%f\n",z);
}

if(i=18)break;

应该改成if(i==18)break;

因为i=18是赋值语句,不是判断大小的比较。

或者干脆去掉if(i=18)break;,把程序前面while(i<=18)改成while(i<18)。

这样效果是一样的,原来的程序,既然在while里面设定了条件跳出,又用if和break;跳出,有些罗嗦了。

因为你if 里面判断相等用的是“=”
其实应该用"=="
=是赋值用的
如果你用i=18
代表把18给i
这个操作成功就返回1
所以if条件是真
执行break

#include "stdio.h"
main()
{
float z=1,i=0;
while(i<=18)
{z=(z+1)*2;
i++;
}
printf("%f\n",z);
}

if(i=18)break;
少了一个=号
if(i==18)break;}

==是等号 =是赋值