嘿,所以我刚刚开始编程(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。有人可以向像我这样的初学者解释为什么吗?
答案 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循环中的代码。
这在微控制器上特别重要,如果不退出循环实现,程序将被卡住。