@【toc】
目录
# while
while(表达式) //先判断表达式的真假。为真,执行循环体语句;为假,退出循环。
{语句块} //{}内的为循环体语句,可为一个语句({}可不加),可为复合语句。
#do...while
do //先无条件执行语句(循环体),再判断表达式真假,决定是否进行
{语句} 下一次循环。
while(表达式);//“;”代表do...while语句结束。
例子:求1+2+3+...+100
#include<stdio.h>
int main()
{
int sum=0; //设置变量储存循环结果
int i=1; //设置变量控制循环次数
do
{
sum=sum+i; //运行结果5050
i=i+1;
}
while(i<=100);
printf("%d",sum);
return 0;
}
# while与do...while的区别
在循环体相同的条件下,若条件为真,while与do...while运行结果相同;若首次条件为假,while不执行循环体,而do...while执行一次。(do...while语句无论条件真假,至少执行一次。)
# for
for(表达式1;表达式2;表达式3)//先求解表达式1,然后判断表达式2的真假。
{语句} 为真,执行语句后求解表达式3,再判断表达式2(循环);为假,退出循环。
(1) for语句的一般形式中,表达式1可省略,但其后的";"不可省略,此时要在for语句前给循环体变量(用于控制循环的变量)赋初值。
(2)表达式2省略时,即不判断循环条件,认为表达式2始终为真,循环无终止进行下去。
(3)表达式3省略时,应另外设法保证循环正常结束。
(4)表达式1,表达式3都省略时,等同于while语句。
(5)表达式1,2,3都省略,for( ; ;);相当于while(1)语句,即不设初值,不判断条件(认为表达式2为真),循环变量不增值,无终止地执行循环体。
(6)表达式1可以设置循环体变量的初值,也可以是与循环体变量无关的其他表达式,表达式1,3还可以为逗号表达式,如,for(i=1,sum=0;i<=100;i++)
(7)表达式2可为关系表达式,逻辑表达式,数值表达式或字符表达式。
# break与continue
break语句:提前终止整个循环。可使流程跳出switch结结构或者从循环体内跳出,结束循环。只能用于循环语句和switch语句,不可单独使用。
continue语句:结束本次循环。跳过循环体中下面尚未执行的语句,进行下一次是否执行循环的判定。
例子:把100以内不能被三整除的数输出。
#include<stdio.h>
int main()
{
int i;
for(i=1;i<100;i++)
{
if(i%3==0)continue; //用continue会输出100以内所有不能被3整除的数
{printf("%d ",i); // 用break只会输出1,2
}
}
return 0;
}
# 循环的嵌套 (上述三种循环语句可互相嵌套)
例子:九九乘法表。
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++) //这条语句执行时i不变j变,这一条循环语句执行完毕后,i加1,
{
printf("%d*%d=%d ",i,j,i*j); //接上,再次执行这条语句
}
printf("\n");
}
return 0;
}
运行结果: