循环 - 初学者

问题描述 投票:-4回答:7

我是C(和编程)的初学者,我发现自己遇到了这个问题。

代码编译,但它返回给我直到11号。我将“While循环”设置为“<= 10”时停止。所以对我来说没有多大意义。

提前谢谢=)。

#include <stdio.h>

int main (void)

{
    int n;

    n = 0;


    while (n <= 10) {
    n++;
    printf("%i\n", n);

}

return 0;

}
c loops while-loop
7个回答
1
投票

n等于10时,n <= 10为真,那么n++;n增加1,而printf()将打印11;之后,n <= 10将失败,并且while循环完成。


1
投票

while循环的基本行为是:

  1. 检查条件。
  2. 如果是假的,请停止。
  3. 否则,执行循环的整个主体。
  4. 回到1。

换句话说,它不会在条件变为假的瞬间停止,而是仅在主体完成执行之后停止。所以在这种情况下,当n = 10时,n<=10为真,循环体执行,首先将n递增到11.循环执行不会在此停止,尽管n<=10现在为false。相反,它继续到printf调用,打印出11.现在循环体已完成,再次检查条件,因为它是假的,循环终止。


1
投票

因为你将n设置为0并且在while循环中迭代到10,所以循环迭代11次。试试n <10!


1
投票

因为你说while(n <= 10)要递增。

当n变为10时,它会根据您的情况进行检查。 10小于等于10?是的它等于10,所以进入循环,并将10递增1并打印。

直到n在下一次传球中变为11才会满足条件。


0
投票

尝试,

n=0;

while(n<=10) { printf("%i\n", n); n++; }

0
投票

首先在打印前增加变量n。因此,在n == 10的最后一个循环中,变量n增加1,即11,然后打印为n == 11。

打印后应增加n。

#include <stdio.h>

int main (void)

{
    int n;
    n = 0;

    while (n <= 10){
       printf("%i\n", n);
       n++;
    }
    return 0;
}

0
投票

在循环的最后一次迭代中(即,n = 10),循环条件满足并且控制进入循环。在循环体中,首先执行n ++,然后执行11.然后执行printf(),打印值11。

如果要打印1到10,则初始化n = 1并在printf()之后执行n ++。

int n=1;
while( n <= 10 ) {
    printf( "%d\n", n );
    n++;
}
© www.soinside.com 2019 - 2024. All rights reserved.