C语言中常用分支语句有if语句,switch语句
首先来说一下if语句。if语句的基本表达式:
if(表达式) if(表达式)
语句; 语句1;
else
语句2;
如果if语句中的表达式为真,则执行语句1,否则执行语句2;如果条件成立,执行多条语句,应该使用代码块。
在这里,一个if和一个else配对,if可以单独使用,有else出现一定有if,这里着重说下if表达式中浮点数与0的比较,因为在内存中整数与浮点数的存储结构是不同的,有些浮点数在内存中无法准确的存储,所以必然会有精度的丢失,所以无法直接使用 == 来判断。
我们可以自己设置一个在我们接受范围之内的精度,保证误差在这个范围之内就可以了。
#define EPSINON 0.000000000001
float f = 0.000001;
if((f > -EPSINON) && (f < EPSINON))
{
}
switch语句:
switch(常量表达式)
{
case 常量 1 :语句1
case 常量 2 :语句2
... ... ...
case 常量 n :语句n
default : 语句n+1
}
在使用switch语句时,先计算switch后面的表达式,再与case后面的常亮表达式作比较,如果相等则执行后面的语句,没有与case后面常量表达式相同的值,则转去执行default后面的语句。case语句的顺序对switch并没有影响。
我们可以用switch语句设计一个程序,输入1显示星期一,输入二显示星期二,以此类推
#include<stdio.h>int main(){ int day = 0; scanf("%d", &day); switch (day) { 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; case 6: printf("星期六\n"); break; case 7: printf("星期日\n"); break; } return 0;
}
值得注意的是,给每条case语句之后都应该加上break语句是一个好习惯,若有其他需要则需要在适当的位置加上break,防止switch语句执行过度,出现与预期相左的结果。
