我的第一个 Hello World 计划无法运行


#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 );
  1. 在条件正文后使用分号;。尽管这样做在语法上是正确的,但它会导致一些不同的东西->while循环的主体将被视为一个单独的块,而您的while只会不断地证明这种情况。

  2. 您也使用了错误的运算符=而不是==进行检查,因为条件测试中需要使用==进行比较,而不是使用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">

最新更新