C语言 为什么这个代码打印的是“123”而不是3?

km0tfn4u  于 2023-02-11  发布在  其他
关注(0)|答案(1)|浏览(223)

我这里有一些代码:

int n = 0;
for(n = 1;n<4;n++)
printf("%d",n);
return 0;

为什么它返回'123'而不是'3'?
我试着在谷歌上搜索这个问题,但我找不到任何有用的东西。

iqjalb3h

iqjalb3h1#

问完我的问题,我想我明白你的意思了.
你和

int n = 0;
    for(n = 1;n<4;n++)
        printf("%d",n);
    return 0;

在功能上与

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 = 44被打印时结束。我在我的最后两个例子中改变了这一点。也注意术语return的错误使用,正如一些评论指出的。

相关问题