#include <stdio.h>
int a;
a = 1;
int main()
{
while ( a = 1 );
{
printf("10");
}
}
我认为我所做的一切都正确。请纠正我的错误。 :)
答案 0 :(得分:2)
在while
语句后删除分号。那会阻止您的代码在那里执行。
while ( a = 1 )
{
printf("10");
}
此外,while语句的参数可能不是您想要执行的操作。 while(a=1)
表示a始终等于1,而while语句将永远继续。相反,您可能想要的是while(a==1)
,意思是“而a等于1”。
答案 1 :(得分:2)
您的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”程序。这是一个“ Hello World”程序:
#include <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
答案 2 :(得分:-1)
while循环语句后还有一个多余的分号。您可以删除它。您使用a = 1进行的分配应为a == 1,这将完成分配而不是分配。不过,我很想知道您的状况。您要打印“ 10”次?
答案 3 :(得分:-1)
删除多余的内容;在while循环之后,您还使用赋值运算符代替比较运算符
while(a==1)
{
printf ("10");
}
答案 4 :(得分:-2)
使用'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”