1.流程控制的定义:程序执行的顺序
2.流程控制的分类:顺序、选择、循环
如何看懂一个程序?
1. 流程
2.每个语句的功能
3.试数
选择 if语句
1 最简单的if应用
格式: if (表达式)
语句;
2.if的作用范围 只能控制if之后的第一个语句,若想控制多个语句,需要将这些语句用花括号括起来
3. if.....else.....的用法
格式:if (表达式)
语句1;
else 语句2;
4. if.....else if......if.....语句
格式:if (表达式)
语句1;
else if 语句2;
............
else 语句n;
解释:因为语句只能执行一个,不可能同时执行,所以整体算一个语句
5.用法举例(学生成绩分等级) if (90 <= score <= 100)-----数学表达式直接应用到c语言会出现错误(因为左边的结果为逻辑值0或者1,但不管结果为0 还是1,都小于100,所以表达式始终为真,无法判断学生的成绩是不是在90到100之间)----------应该改为 if ( score >= 90 && score <= 100) .......
三个数排序(程序)
6.if常出现的问题
1)空语句的问题
if (1>2);----------等价于 if (1>2)
;//相当于空语句
2) if (表达式)
语句1;
else 语句2;//是正确的
if (表达式);
语句1;
else 语句2;//是错误的,以else语句开头
3)if.......else if.......else.....中把else删掉 语法不会出错,但逻辑上有漏洞。
4)if.......else if.......else.....中最后的 else(表达式n)这样写是不对的,因为有表达式的话就要判断真假,判断的话必须加if,若else(表达式);增加分号,语法上是正确的,它相当于把 (表达式);当成一个无任何意义的语句来执行。
5)if.......else if.......else.....中正确的程序是只有一个表达式是成立的,但是若多个表达式都同时成立,也只会执行第一个成立的语句的内容。
switch语句
switch(表达式)
{
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
case 常量表达式3: 语句3;
default: 语句n
}
1 # include <stdio.h> 2 3 int main (void) 4 { 5 int val; 6 7 printf("请输入你要进入的楼层:"); 8 scanf("%d", &val); 9 10 switch (val) 11 { 12 case 1: 13 printf("1层开! "); 14 break; 15 case 2: 16 printf("2层开! "); 17 break; 18 case 3: 19 printf("3层开! "); 20 break; 21 case 4: 22 printf("4层开! "); 23 break; 24 default: 25 printf("没有盖到这一层! "); 26 break; 27 28 } 29 30 return 0; 31 }
必须有break语句,否则情况可能会同时发生。case1 case2 case3 case4 default 是程序的入口,程序一旦进入,将会从上往下执行,不再进行判断,所以为了体现出选择,必须有break语句终止switch。
在switch语句中的break只是让程序退出switch语句,继续执行下面的语句,在switch中出现continue是错误的,除非里边嵌套了循环。
题外话 1.判断一个数字是否是素数
2.判断一个数字是否是回文数
3.编程实现求一个十进制数字的二进制形式
4.求一个数字的每位是奇数的数字取出来组合形成的新数字
5.求一个数字倒过来的数字