admin管理员组

文章数量:1794759

C语言学习之for循环

C语言学习之for循环

一、for 循环基本结构形式:

基本结构:

for(表达式1;表达式2;表达式3){语句块}

     进入for循环,①首先执行表达式1,表达式1是也是初始化语句。②接着执行表达式2,如果表达式2的条件是真(或说表达式2条件成立)就执行for循环内部的语句块,语句块执行完成后自动执行表达式3(一般是是自增或自减)③表达式3执行完成后,返回判断表达式2的条件是否成立。如果是真继续第②步的操作,如果不成立则跳出循环体。for循环如果不带{}那么会执行最近的语句块。

例: 求1~100整数之间所有数的和

#include<stdio.h> void main() { int i, sum=0; //初始化i和sum for(i=1;i<=100;i++){ //注意for内部的分号 sum=sum+i; } printf("%d",sum); }

二、for循环二层嵌套

#include<stdio.h> void main()//打印乘法口诀表 ,for循环的嵌套 { /* 精典的99乘法口诀表控制程序*/ int i,j; //初始化变量i、j -----------------------------① for(i=1;i<=9;i++){ //控制显示列,(外圈循环的次数 )----------------② for(j=1;j<=i;j++){ //控制每一行显示的个数 可以给本行的i改成9试试看--③ printf("%d*%d=%d \\t",i,j,j*i); //打印算式---------------------④ } printf("\\n"); //打印外层的换行---------------⑤ } }

上面一个例子是99乘法口诀表:

①首先初始化变量i和j

②控制外层的循环,首先给i赋值为1,i<=9成立,执行③的for循环体

③语句(控制每一行乘法的个数,执行j次循环)第1次循环时(i=1)那么j也是1,就执行1次④printf函数,然后跳出③的for循环体,执行⑤换行程序;------第9次循环时(i=9)那么j也是9,就执行9次④printf函数,然后跳出③的for循环体,执行⑤换行程序;

可以给i和j换成不同值测试,看看打印出的效果如下图

 for循环可以多层嵌套,但是工作中以二层嵌套居多,多层嵌套程序的可读性变差。可以将二层嵌套分解为单层嵌套:先是外层for循环②执行一次,内层for循环③执行j次,执行完成后跳出内层循环;外层循环执行第二次,内存循环执行j次,执行完成后跳出内层循环,重复此操作;直到外层循环i次执行完毕,跳出整个大循环 

嵌套图解

 例1:求出 1!+2!+3!+…+n!的和。

#include<stdio.h> void main(){ /*1、求出 1!+2!+3!+…+n!的和 n!=1*2*3*/ int n ; //存储1!+2!+3!+…+n!中n的值 int i, j; //循环变量 int y = 1;//用于计算每个数的阶乘初始化 unsigned long sum=0; printf("请输入n的值:"); scanf("%d", &n); for(i=1;i<=n;i++){ //控制阶层的加法, for(j=1;j<=i;j++){ //计算单个阶层 n! (n!=n*(n-1)) y=y*j; printf("内循环 %d 次 \\t",y); } sum=sum+y; y=1; //这句很关键,为下一个循环初始化y printf("外循环 %d 次和是 %d \\n",i,sum); } }

 输出结果

友情提示:技术交流及代码分享QQ群号码:255864236

本文标签: 语言