循环控制语句
在程序设计中,如果需要重复执行某些操作,就要用到循环结构。使用循环结构时,要明确两个问题:需要重复执行的是哪些操作(循环体)?这些操作在什么情况下执行(循环条件)?。
while语句
一般形式:
while(表达式)
循环体语句;
while(表达式)
{
循环体语句;
}
表达式的值为 真 时,循环执行,知道表达式的值为 假 时终止执行并执行下一条语句。
应用
输入成绩,根据输入的成绩判断分数所在等级 优秀(score>=90)、良(90>score>=70)、及格(70>score>=60)、不及格(60>score>=40)、很差(40>score>=0)
例:
#include <stdio.h>
#include <stdlib.h>
//输入成绩,根据输入的成绩判断分数所在等级 优秀(score>=90)、良(90>score>=70)、及格(70>score>=60)、不及格(60>score>=40)、很差(40>score>=0)
int main()
{
//定义
int score;
int i = 0;
while(i < 10){
i++;
//1.提示输入成绩
printf("请输入第%d次成绩\n",i);
//2.接收输入的成绩
scanf("%d",&score);
//3.选择嵌套
//如果大于等于90
if(score >= 90){
//输出优秀;
printf("优秀!\n");
}else if(score >= 70){
printf("良!\n");//否则
}
else if(score >= 60){
printf("及格!\n");
}
else if(score >= 40){
printf("不及格!\n");
}
else{
printf("很差!\n");
}
}
system("pause");
return 0;
}
由此可见:
- while语句中的表达式可以是任何合法的表达式。
- 循环体语句包含多条时可用大括号包含起来.
for语句
一般形式:
for(表达式1;表达式2;表达式3;)
循环体语句;
for(表达式1;表达式2;表达式3;)
{
循环体语句;
循环体语句;
......
}
- 表达式1,用来指定循环变量的初始值,指定循环的起点。
- 表达式2,条件表达式,用来判断循环的变量是否满足执行循环的条件。
- 表达式3,步长表达式,用来改变循环变量的值。
- 循环体语句,反复执行的操作。
- 表达式之间用分号分隔。
#include <stdio.h>
int main()
{
int sum = 0;
int i;
for (i = 1; i <= 50; i++)
{
sum += i;
}
printf("1和50之间(包括1和50)的整数之和为%d\n", sum);
return 0;
}
- 若循环体语句有多条语句组成,必须用大括号把他们括起来,变成一条复合语句。否则,只会循环执行紧跟其后的的一条语句。
- for语句中的三个语句的执行顺序,与书写顺序并不相同,表达式3,的执行顺序在执行循环体语句之后。
do…while语句
for语句和while语句都是在循环体执行前,先判断条件是否成立在决定是否执行循环体,若条件不成立则一次都不会执行。
do-while语句略有不同,它先执行循环体在判断条件是否成立,也就是说无论循环条件是否成立它都会会至少执行一次循环体。
一般形式:
do {
循环体语句;
}while(表达式);
例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
/*while(1){
printf("XXX很帅!\n");
}*/
do{
i++;
printf("XXX很帅!\n");
if(i == 10){
break;
}
}while(1);
system("pause");
return 0;
}
break和continue语句
break语句
强制循环结束,一旦执行了break语句则提前结束了循环,不在继续执行break语句之后的语句,常与if语句配合使用,条件满足时跳出循环。
continueyu语句
continue语句的作用是跳过本轮循环,即跳过循环体中的continue语句后面的语句,继续下一轮循环。
break与continue的区别在于,break结束循环,而continue只是跳过跳过后面的语句继续循环。