三种循环

在线C环境:https://clin.icourse163.org/

 

 

1. for循环

阶乘

  • n! = 1×2×3×4× … ×n
  • 写⼀个程序,让⽤户输⼊n,然后计算输 出n!
  • 变量:显然读⽤户的输⼊需要⼀个int的n,然后 计算的结果需要⽤⼀个变量保存,可以 是int的factor,在计算中需要有⼀个变量 不断地从1递增到n,那可以是int的i

 

#include <stdio.h>

enum COLOR {RED, YELLOW, GREEN, NumCOLORS};

int main() {
    
  int n;
  scanf("%d",&n);
  int fact =1;
  int i = 1;
  while(i<=n){
      fact*=i;
      i++;
  }
  printf("%d!=%d\n",n,fact);
   
    return 0;
}

for

#include <stdio.h>

enum COLOR {RED, YELLOW, GREEN, NumCOLORS};

int main() {
    
  int n;
  scanf("%d",&n);
  int fact =1;
  int i;
 for(i=1; i<=n;i++){
     fact*=i;
 }
  printf("%d!=%d\n",n,fact);
   
    return 0;
}

 

for循环像⼀个计数循环:设定⼀个计数器,初始化 它,然后在计数器到达某值之前,重复执⾏循环体, ⽽每执⾏⼀轮循环,计数器值以⼀定步进进⾏调整, ⽐如加1或者减1

for ( i=0; i<5; i=i+1 ) {
               printf("%d", i);
}

for = 对于

for ( count=10; count>0; count-- )

就读成:“对于⼀开始的count=10,当 count>0时,重复做循环体,每⼀轮循环 在做完循环体内语句后,使得count--。 ”

 

⼩套路

做求和的程序时,记录结果的变量应该初 始化为0,⽽做求积的变量时,记录结果 的变量应该初始化为1

循环控制变量i只在循环⾥被使⽤了,在循 环外⾯它没有任何⽤处。因此,我们可以 把变量i的定义写到for语句⾥⾯去

 

 

try

1×1还是1,所以程序的循环不需要从1开 始,那么改成从多少开始合适呢?这样修 改之后,程序对所有的n都正确吗?这样 的改动有价值吗?

除了可以从1乘到n来计算n!,还可以从n乘 到1来计算吧?试试把循环换个⽅向来计 算n。这时候,还需要循环控制变量i吗?

 

for循环

for ( 初始动作; 条件; 每轮的动作 ) {

for中的每⼀个表达式都是可以省略的 for (; 条件; ) == while ( 条件 )

 

循环次数

for ( i=0; i<n; i++ )

则循环的次数是n,⽽循环结束以后,i的
值是n。循环的控制变量i,是选择从0开始
还是从1开始,是判断i<n还是判断i<=n,
对循环的次数,循环结束后变量的值都有
影响

 

 

Tips for loops

如果有固定次数,⽤for 

如果必须执⾏⼀次⽤do_while 

其他情况⽤whil

posted @ 2021-12-15 13:01  漫漫长路</>  阅读(108)  评论(0编辑  收藏  举报