#include <stdio.h>
int a;
a = 1;
int main()
{
while ( a = 1 );
{
printf("10");
}
}
我认为我做的每件事都是对的。请纠正我的错误
删除while
语句后的分号。这将阻止您的代码在那里执行。
while ( a = 1 )
{
printf("10");
}
此外,while语句的自变量可能不是您想要做的。while(a=1)
意味着a将始终等于1,而while语句将永远持续。相反,你可能想要的是while(a==1)
,意思是"当a等于1时"。
您的while语句的意图不正确:
while ( a = 1 );
在条件正文后使用分号
;
。尽管这样做在语法上是正确的,但它会导致一些不同的东西->while
循环的主体将被视为一个单独的块,而您的while
只会不断地证明这种情况。您也使用了错误的运算符
=
而不是==
进行检查,因为条件测试中需要使用==
进行比较,而不是使用0
。否则,它将实际将1
分配给a
,并且条件将始终计算为true
。
正确的版本是:
while ( a == 1 )
{
....
}
您也可以将分配给a
与其定义结合起来:
int a = 10;
修正后的程序为:
#include <stdio.h>
int a = 1;
int main(void)
{
while ( a == 1 )
{
printf("10");
}
}
注意,此程序将永远不会终止并停止打印10
,因为a
永远不会更改。高可能会导致运行时错误。
旁注:
这不是一个"你好世界"节目。这是一个"Hello World"程序:
#include <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
while循环语句后面有一个额外的分号。你可以删除它。使用a=1的赋值应该是a==1,它将组成而不是赋值。不过我对你的睡眠状况很好奇。您希望"10"打印多少次?
删除多余的;while循环之后,您也使用赋值运算符代替比较运算符
while(a==1)
{
printf ("10");
}
将一个值与变量"=="进行比较的用法类似于"a==1",因此循环将如下所示。并确保在最后一个右括号之前添加"return 0"。还删除while循环圆括号后的分号。
int a=1;
int main()
{
while(a==1) {
printf("10");
}
return 0;
}
您可以使用"void main(("而不是"int main((("来避免返回值。要使用"void main((",请将其替换为"int main(("并删除"return 0">