流程控制是程序代码执行的顺序
1. 顺序
2. 选择
有选择地执行某些代码
分类
if语句
1. if 最简单地用法
2. if 的范围问题
3. if……else
4. if……elseif……else
5. C语言对真假的处理
6. 程序举例——求分数的等级
7. if 的常见问题解析
switch语句
3. 循环
if 最简单用法与控制范围
if(表达式)
语句;
//表达式为真,执行语句;
//表达式为假,不执行语句。
if(表达式)
{
语句A;
语句B;
}
默认if 只能控制一个语句的执行,如果想控制多个,必须用大括号括起来。
不括住的话,第二条语句的执行不受if控制,或者说一定执行。
if……else
if……else if……else
if(表达式)
语句A;
else if (表达式)
语句B;
else if (表达式)
语句C;
else
语句D;
//错误写法
if(表达式)
语句A;
语句N;//不加大括号,语句N不在if控制范围内,算作另一条语句,插在if …… else if …… else 中间,导致后边的else if 无法正确执行。
else if (表达式)
语句B;
else if (表达式)
语句C;
else
语句D;
C语言对真假的处理
if(90<=score<=100)
//这样写是错误的,先运算左边,90<=score
//要不是0,要么是1,用0||1再和100作比较。
//式子永远是真。
if(score>=90 && score<=100)
//这样是正确的
if 的常见问题解析
空语句的问题
if(1>2);
printf("AAAA\n");
printf("BBBB\n");
//等价于
if(1>2)
; //这是个空语句,受if控制
printf("AAAA\n");
printf("BBBB\n");
//最终结果
AAAA
BBBB
if……else if…… else
if(3>2)
printf("AAAA\n");
else if (2>1)
printf("BBBB\n");
else
printf("CCCC\n");
//输出
AAAA
如果第一个成立,就不会判断执行下边其他条件了
也就是说,前边有一个判断条件成立,无论下边成不成立都不会执行了。
用于多分支判断
switch (a)
{
case 1:
printf("您做梦吧!!!\n");
break;
case 2:
printf("您的成绩及格\n");
break;
case 3:
printf("您的成绩不及格!\n");
break;
case 4:
printf("请仔细检查输入数字\n");
break;
case 5:
printf("想用不想用软件!不想用慢走不送!\n");
break;
default:
break;
}
注意点:
switch (表达式) 表达式的值必须是一个整数或者字符型的数据
case:后边跟一个常量表达式,它们与default:后边的常量表达式都是只起一个标号的作用
可以没有default标号
case 出现的顺序不影响执行顺序
每一个case常量必须互不相同
在执行完一个case标号后边的语句后,就从此标号开始执行下去,不再进行判断,如果各case子语句没有break,程序则会不进行判断,连续输出下面的case的子语句。
switch (a)
{
case 1:
printf("您做梦吧!!!\n");
case 2:
printf("您的成绩及格\n");
case 3:
printf("您的成绩不及格!\n");
case 4:
printf("请仔细检查输入数字\n");
case 5:
printf("想用不想用软件!不想用慢走不送!\n");
default:
break;
}
//运行结果
请输入一个1-5的整数,按空格结束
2
您的成绩及格
您的成绩不及格!
请仔细检查输入数字
想用不想用软件!不想用慢走不送!
请按任意键继续. . .
case后边包含多个子语句可以不必用花括号括起来。
多个case标号,可以共用一个子语句
switch (a)
{
case 1:
case 2:
printf("您的成绩及格\n");
break;
case 3:
case 4:
printf("请仔细检查输入数字\n");
break;
case 5:
printf("想用不想用软件!不想用慢走不送!\n");
break;
default:
break;
}
//运行结果
请输入一个1-5的整数,按空格结束
3
请仔细检查输入数字
请按任意键继续. . .
本文章使用limfx的vsocde插件快速发布