while
使用形式:while(表达式){语句}
表达式为循环的条件,语句就是每次循环执行的内容。
While执行过程为:先判断再执行。
判断:指的是表达式的真假,真(非零)就执行语句,假(0)就不执行语句。因此while后面的语句有可能一次都不执行。
do...while
使用形式:do{语句}while(表达式);
do...while与while的不同在于do...while的执行过程。
注意:表达式后面有 “;”号。
do...while执行过程:先执行一次循环体(即语句)在判断再执行循环体(即语句)。
这样就使得do...while至少会执行一次循环。
for
使用形式:for(表达式1;表达式2;表达式3){语句}
表达式1:用于给变量赋初值。
表达式2:用于判断,判断是否继续执行循环体(即语句)。
表达式3:一般用于改变在判断循环中的变量,达到使循环截至的效果。
for的执行顺序为:表达式1->表达式2(表达式为真)->循环体->表达式3->表达式2->循环体->表达式3->表达式2->循环体->表达式3直到表达式2为假时退出循环。
注意的是:for中的表达式在一定条件下都可以省略,但是“;”号不能省略。
表达式1和表达式3:任何时候,只要你乐意,都可以省略。(一般是不需要给变量赋初值(不需要改变变量值)时都可省)
表达式2:当省略表达式2的时候,需要有一个语句来跳出循环。break;return;都可以使循环结束,但是一般使用break。人reak的作用为跳出最近的循环。return退出的是当前的函数,自然也会退出循环。
三种循环的代码实现:(实现1到100的累加)
#include<stdio.h>
int a(int x){//for实现1到100的累加
for(int i=1;i<=100;i++){
x+=i;
}
// for(i=1;;i++){//省略表达式2 的时候用if和break使循环结束
// X+=i;
// if(i==100)//也可以用return直接返回x的值(即if(i==100)return x;)
// break;
// } return x;
}
int b(int x){//do...while实现1到100的累加
int i=1;
do{
x+=i;
i++;
}while(i<=100);
return x;
}
int c(int x){//while实现1到100的累加
int i=1;
while(i<=100){
x+=i;
i++;
}
return x;
}
int main(){
int x;
x=0;
x=a(x);
printf("%d\n",x);
x=0;
x=b(x);
printf("%d\n",x);
x=0;
x=c(x);
printf("%d\n",x);
return 0;
}
循环的嵌套:
除了单个循环的使用,在一些时候我们还会用到循环的嵌套使用。
在这用for进行演示:
//输出一个4×4的由*构成的矩阵:
for(int i=1;i<=4;i++){//一共有几行
for(int j=1;j<=4;j++)//每一行要输出几个
printf(“*”);
printf(“\n”);
}
在使用循环的嵌套的时候,我们需要注意每个循环的意义,明确了意义以后,才方便具体的写循环体,也就不会迷糊。