一、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后面的常量表达式都不匹配时,就会执行且会打开开关。