我这里有一些代码:
int n = 0; for(n = 1;n<4;n++) printf("%d",n); return 0;
为什么它返回'123'而不是'3'?我试着在谷歌上搜索这个问题,但我找不到任何有用的东西。
iqjalb3h1#
问完我的问题,我想我明白你的意思了.你和
在功能上与
int n = 0; for(n = 1;n<4;n++) { printf("%d",n); } return 0;
因为for循环需要一个语句,要么是一个用大括号括起来的语句块,要么是一个以分号结尾的语句,就像你在例子中所做的那样。如果你想让它只打印3,并且出于某种原因想让循环只用于递增一个数字,你就应该给它提供一个空语句,如下所示:
int n = 0; for(n = 1;n<3;n++); printf("%d",n); return 0;
或
int n = 0; for(n = 1;n<3;n++){} printf("%d",n); return 0;
两个都只能打印3个。请注意,因为变量n是递增的,然后检查,使用你原来的边界n < 4,循环将在n = 4和4被打印时结束。我在我的最后两个例子中改变了这一点。也注意术语return的错误使用,正如一些评论指出的。
n
n < 4
n = 4
4
1条答案
按热度按时间iqjalb3h1#
问完我的问题,我想我明白你的意思了.
你和
在功能上与
因为for循环需要一个语句,要么是一个用大括号括起来的语句块,要么是一个以分号结尾的语句,就像你在例子中所做的那样。如果你想让它只打印3,并且出于某种原因想让循环只用于递增一个数字,你就应该给它提供一个空语句,如下所示:
或
两个都只能打印3个。
请注意,因为变量
n
是递增的,然后检查,使用你原来的边界n < 4
,循环将在n = 4
和4
被打印时结束。我在我的最后两个例子中改变了这一点。也注意术语return的错误使用,正如一些评论指出的。