三种循环


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

 

1. for循环

阶乘

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

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 

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,是选择从0开始
还是从1开始,是判断i对循环的次数,循环结束后变量的值都有
影响

Tips for loops

如果有固定次数,?for 

如果必须执??次?do_while 

其他情况?whil