控制语句:顺序、分支、循环
(一)分支结构
1、二分支选择结构
if(表达式)
{
语句块;
}
else
{
语句块;
}
2、阶梯形式
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
……
else
{
语句n;
}
3、嵌套形式
if(表达式1)
{
if(表达式2)
{
语句块1;
}
else
{
语句块2;
}
}
else
{
if(表达式3)
{
语句块3;
}
else
{
语句块4;
}
4、switch(整型表达式/字符型表达式)
{
case 常量表达式1:
语句块;
break;
case 常量表达式2:
语句块;
break;
case 常量表达式3:
语句块;
break;
……
default:
语句块;
}
每个case后必须加break,没有break会一直执行下去,直到遇到break才会跳出switch语句块。
(二)循环语句 for while do while goto
1、for(表达式1;表达式2;表达式3)
{
语句块;
}
注: 表达式1赋初值,可以省略,但是在使用之前必须赋初值;
表达式2表判断,不能省略,如果没有判断语句,则为死循环;
表达式3 表示变化方式,可以省略,但是要将变化方式放在循环里面。
2、 while(表达式)
{
语句块;
}
3、do while
do
{
语句块;
}while(表达式);
while先判断,后执行 ,do while 先执行,后判断;while至少一次都不执行,do while至少执行一次
break:跳出本层循环
continue:跳出本次循环,继续下一次循环
4、goto:无条件跳转语句 一般格式为:goto语句标号;
(一)分支结构
1、二分支选择结构
if(表达式)
{
语句块;
}
else
{
语句块;
}
2、阶梯形式
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
……
else
{
语句n;
}
3、嵌套形式
if(表达式1)
{
if(表达式2)
{
语句块1;
}
else
{
语句块2;
}
}
else
{
if(表达式3)
{
语句块3;
}
else
{
语句块4;
}
}
#include<stdio.h>
int main()
{
int i=0;
int j =1;
int k =8;
if(i==0)
{
i++;
if(j==0)
{
j++;
}
else
{
j--;
}
}
else if(k==8)
{
k--;
}
else
{
i = i+2;
if(k<0)
{
k--;
}
else
{
k++;
}
}
printf("i=%d,j=%d,k=%d\n",i,j,k);
return 0;
}
4、switch(整型表达式/字符型表达式)
{
case 常量表达式1:
语句块;
break;
case 常量表达式2:
语句块;
break;
case 常量表达式3:
语句块;
break;
……
default:
语句块;
}
每个case后必须加break,没有break会一直执行下去,直到遇到break才会跳出switch语句块。
#include<stdio.h>
int main()
{
float score;
printf("input a score :\n");
scanf("%f",&score);
if(score >100 || score <0)
{
printf("input error\n");
return -1;
}
switch ((int)score/10)
{
case 10:
case 9:
{
printf("A\n");
break;
}
case 8:
{
printf("B\n");
break;
}
case 7:
{
printf("C\n");
break;
}
case 6:
{
printf("D\n");
break;
}
default:
{
printf("you are failed\n");
}
}
return 0;
}
(二)循环语句 for while do while goto
1、for(表达式1;表达式2;表达式3)
{
语句块;
}
注: 表达式1赋初值,可以省略,但是在使用之前必须赋初值;
表达式2表判断,不能省略,如果没有判断语句,则为死循环;
表达式3 表示变化方式,可以省略,但是要将变化方式放在循环里面。
2、 while(表达式)
{
语句块;
}
#include<stdio.h>
int main()
{
int i =10;
while(i>0)
{
i--;
}
printf("i=%d\n",i);
return 0;
}
3、do while
do
{
语句块;
}while(表达式);
while先判断,后执行 ,do while 先执行,后判断;while至少一次都不执行,do while至少执行一次
break:跳出本层循环
continue:跳出本次循环,继续下一次循环
#include<stdio.h>
int main()
{
int i =10;
do
{
i--;
}while(i>0);
printf("i=%d\n",i);
return 0;
}
4、goto:无条件跳转语句 一般格式为:goto语句标号;
如果要用goto实现for循环,注意goto要放在判断语句里,要不然就是死循环;
#include<stdio.h>
int main()
{
int num =0;
int num2 = 1;
loop: scanf("%d%d",&num,&num2);
printf("num=%d,num2=%d\n",num,num2);
if(num>0)
{
goto loop;
}
return 0;
}