目录
循环
while语句
一般形式:while(表达式)
{语句}
注:
1.while循环的特点是先判断条件表达式,后执行循环体语句。
2."语句“就是循环体。循环体可以是一个简单的语句,可以是复合语句(用花括号括起来的若干语句)。
3.表达式的值为“真”(以非0值表示)时,就执行循环体语句;为“假”(以0表示)时,就不执行循环体语句,退出循环。
#include<stdio.h>
int main()
{int i=1;
while(i<=10)
{
printf("**********\n");
i++;
}
return 0;
}
do...while语句
一般形式:do
语句
while(表达式)
二者的比较:当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;否则结果不相同(指二者具有相同的循环体的情况)
#include<stdio.h>
int main()
{
int s=0;
int i=1;
do
{
s=s+i;
i=i+1;
}while(i<=100);
printf("s=%d\n",s);
return 0;
}
for语句
表达形式:
for(表达式1;表达式2;表达式3)
语句
表达式1;
while表达式2
{
语句
表达式3
}
1.for语句的一般形式中的“表达式1”可省略此时应在for语句之前给循环变量赋初值。注意,省略1时,其后面的分号不能省略。
2.如果表达式2省略,即不判断循环条件,循环无终止的进行下去。也就认为2始终为真。
3.表达式3也可以省略,但应另外设法保住循环能正常结束。
4.可省略表达式1和表达式3,只有表达式2,即只给循环条件。在这种情况下,完全等同于while语句。可见for语句比while语句功能强,除了可以给出循环条件外,还可以赋初值,使循环变量自动增值等。
5.3个表达式都可省略。无终止地执行循环体。for( ; ; )//相当于while(1)语句
6.表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。
7.表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非0,就执行循环体。
#include<stdio.h>
int main()
{
int i=1,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d\n",sum);
return 0;
}
break和continue
break
作用:break语句可以使流程跳出switch结构;还可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。
注:break语句只能用于循环语句和Switch语句之中,不能单独使用。
continue
作用:结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
区别:
break一般形式 :
while(表达式1)
{
...
if(表达式2)break;
...
}
continue一般形式:
while(表达式1)
{
...
if(表达式2)continue;
...
}
#include<stdio.h>
int main()
{ int n;
for(n=100;n<=200;n++)
{ if(n%3==0)
continue;
printf("%d",n);
}
printf("\n");
return 0;
}
注:continue语句只结束本次循环,而非终止整个循环。break语句结束整个循环,不再判断执行循环的条件是否成立。
几种循环的比较
- 3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。
- 用while和do...while语句循环时,循环变量初始化操作应在while和do...while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
- 在while和do...while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句。
- for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,for循环都可以。
- 3种循环都可以用break语句跳出循环,用continue语句结束本次循环。
循环的嵌套
定义:一个循环体内又包含另一个完整的循环结构。
多层循环:内嵌的循环中还可以嵌套循环。
3种循环可以相互嵌套。