一、if语句 有三种基本形式 (1)if(表达式) 语句 只要"表达式"的值为真(非0),就执行语句 "表达式":任意的C语言合法的表达式都可以 语句: 单语句,一个分号;的语句 复合语句,用{}把多条语句括起来 eg: int a=200; int b=100; if(a>b) { a = a+b; printf("%d\n",a); } (2) if(表达式) 语句1 else 语句2 如果表达式的值为真,则执行语句1,后面的语句2不会执行, 如果表达式的值为假,则不执行语句1,执行语句2 "表达式":任意的C语言合法的表达式都可以 语句: 单语句,一个分号;的语句 复合语句,用{}把多条语句括起来 (3) if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 。。。 else if(表达式n) 语句n else 语句m 从上到下执行,当某一个表达式为真时,就执行对应的语句,然后后面的else if结构都不会 执行了,当本次表达式为假时,则会去判断下一个表达式的真假,当所有的表达式都为假时, 则执行最后else的语句m。也可以没有else。 例子: if(表达式) { if(num<=50) { cost = 10; } else if(num<=100) { cost = 5; } else if(num<=300) { cost = 3; } else if(num<=500) { cost = 1; } else { cost = 0; } } if语句的嵌套: "条件里面分条件" if(表达式) if(表达式) 语句 else 语句 else if() 语句 else 语句 else的匹配问题: else总是与它上面的,最近的,同级未配对的if语句配对 编程规范: 写完if或else后,不管它后面有没有语句,请先写{}确定它的范围, 然后在{}内补充语句,请用TAB缩进 二、switch语句(开关语句)
形式: switch(表达式) { case 常量表达式1: 语句1 case 常量表达式2: 语句2 break; ... case 常量表达式n: 语句n default: 语句m } (1)"表达式"的值必须为整数值(整型,字符型,枚举),即可以列举的值 (2)"常量表达式"的值也必须为整数值,且每个case后面的常量表达式的值必须不相同。 (3)从上到下执行,当某个常量表达式的值与switch里面的表达式的值相等时,就会 打开"开关",执行冒号后面的语句,直到有break语句,就提前跳出switch,否则 就会轮到下一个case,且不比较常量表达式的值,就执行语句(因为开关已经打开了), 当所有语句执行完后,就结束了switch语句。 (4)break语句,用来提前跳出switch语句,常用的用法是每default后面的语句,个case后面都会有break语句。 (5)当所有的case后面的常量表达式都不匹配时,就会执行且会打开开关。