C语言中的for和while循环之间的区别?

时间:2018-10-24 13:30:58

标签: c for-loop while-loop

嘿,所以我刚刚开始编程(C),我想知道while和for循环之间的区别,所以我做了一个程序,用for循环将自然数求和,并且有效:

int sum = 0;
int count;
int num = 11;

for (count = 1; count <= num; count++){
    sum += count;
}
printf("Sum of numbers is: %d\n", sum);

总和为66,计数为11,但是当我在while循环中尝试时,它出了错:

int kount = 1;
int ssum = 0;
int number = 11;
while(kount <= number){
    ++kount;
    ssum += kount;
}
printf("Ssum is: %d \n", ssum);
printf("Kount is %d \n", kount);

这里的总和为77,而kount为12。有人可以向像我这样的初学者解释为什么吗?

4 个答案:

答案 0 :(得分:1)

在while循环的主体内部尝试做

ssum += kount; 在您进行++kount;

之前

答案 1 :(得分:1)

只需在ssum + = kount之后添加++ Kount行,您的问题就会得到解决。

{{1}}

答案 2 :(得分:1)

for和while循环之间的基本区别是所有三个步骤的初始化,测试和增量均写在一行中。

For循环:

int a ;
for(a= 0; a<10; a++)
{
    //do some stuff
}

同时循环:

int a = 0;     // 1. Initialization step
while (a < 10) // 2. Test step
{
    // Do something
    a++;      // 3.Increment step. a++ is the same as saying a=a+1, 
}

在while循环中比较两个数字的另一种方法:

a=2;
b=3;
while (a < b)
{
    a++;
    printf("%d\n",a);
}

您可以使用for循环在单行中执行此操作。

for (a=2,b=3; a < b; a++,printf("%d\n",a));

答案 3 :(得分:0)

出于安全原因,通常建议使用for循环而不是while。

对于for循环,您具有“自动”最大循环数。在使用while时,这取决于您在while循环中的代码。

这在微控制器上特别重要,如果不退出循环实现,程序将被卡住。