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语句执行过度,出现与预期相左的结果。