赞
踩
简化形式
if(表达式)语句块
阶梯形式
if(表达式1)语句块1
else if(表达式2)语句块2
嵌套形式
if()
if() 语句1
else 语句2
else
if() 语句3
else 语句4
表达式一般情况下为逻辑表达式或关系表达式
#include <stdio.h>//从小到大排序,输出顺序不变,值交换了 int main() { int a,b,c,t; printf("请输入3个数:"); scanf("%d%d%d",&a,&b,&c); if(a>b) { t = a; a = b; b = t; } if(a>c) { t = a; a = c; c = t; } if(b>c) { t = b; b = c; c = t; } printf("从小到大为%d,%d,%d",a,b,c); return 0; }
多分支选择结构
switch(表达式)
{
case 常量表达式1: 语句块1:break;
default: 语句块n+1
}
1、每个常量表达式的值必须各不相同,否则将出现矛盾
2、当表达式的值与case后面的常量表达式的值相等时,就执行case后面的语句
3、switch中的表达式可以是整形,字符型表达式或枚举
4、case常量:只起语句标号的作用
5、break语句用于强行跳出Switch体,一般每个case后面应有一个break语句,defalut分支后的break可以省略
6、多个case可以执行一条语句
#include <stdio.h> int main() { int tmp = 1; switch(tmp) { case 1: printf("A\n"); //break; case 2: printf("B\n"); break; default: printf("NOT"); } return 0; }
//Switch学生成绩
#include <stdio.h> int main() { float score = 0; printf("请输入成绩:"); scanf("%f",&score); if(score<0 || score>100) { printf("输入错误!\n"); } else { switch((int)score/10)//强制转换类型(int) { case 9: printf("A\n"); break; case 8: printf("B\n"); break; case 7: printf("C\n"); break; default: printf("D"); } } return 0; }
当程序有多个出口,使用goto把这些出口集中到一处很方便,特别是函数中有很多重复的工作的时候
1、无条件跳转易于理解
2、可以减少嵌套
3、帮助编译器做优化
#include <stdio.h>
int main()
{
int i,sum = 0;
loop://loop跳转
if(i<=100)
{
sum += i;
i++;
goto loop;//跳转loop
}
printf("%d",sum);
return 0;
}
while(表达式)
{
statements;
}
1、变量初值
2、终止条件
3、变量变化
#include <stdio.h>
int main()
{
int i,sum = 0;
while(i<=100)//先判断再执行
{
sum += i;
i++;
}
printf("%d",sum);
return 0;
}
do-while构成循环
do{
statements;
}while(表达式);
#include <stdio.h>
int main()
{
int i,sum = 0;
do{
sum += i;
i++;
}while(i<=100);
printf("%d",sum);
return 0;
}
表达式1可以省略,但循环之前应要给循环变量赋值
表达式2可以省略,将陷入死循环
表达式3可以省略,但在循环体中增加循环使变量的值改变的语句
#include <stdio.h>
int main()
{
int i = 0,sum = 0;
for(;i<=100;)
{
sum += i;
i++;
}
printf("sum = %d",sum);
return 0;
}
#include <stdio.h>//99乘法表
int main()
{
int i = 0,j = 0;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d\t",j,i,j*i);// \t缩进8位
puts("");//输出字符串,字符串自动换行
}
return 0;
}
用于从循环体内跳出一层循环体,即提前结束循环
break只能用在循环语句和Switch语句中
#include <stdio.h>
#define PI 3.14
int main()
{
float r = 0,area = 0;
for(r=1;r<=10;r++)
{
area = PI*r*r;
if(area>100)
break;
printf("r = %f,area = %f\n",r,area);
}
return 0;
}
结束本次循环,接着判定下一次是否执行循环
continue只结束本次循环,break终止本层循环
#include <stdio.h>
#define PI 3.14
int main()
{
int i;
for(i=100;i<=120;i++)
{
if(i%3 == 0)
continue;//余0终止本次执行下一次
printf("i = %d\n",i);
}
return 0;
}
终止包含它的函数执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。