目录
一、if语句
1.if语句
if语句分为单分支与多分支,但是为了方便理解我将它分为三类
(1).单个if语句
if(表达式)
语句1;
if(a > b)
a = b;
如果if后的表达式成立,那么执行语句1,否则不执行
(2)if - else语句
if(表达式)
语句1;
else
语句2;
if(a > b)
a = b;
else
a = c;
else后不需要跟随表达式,如果if后的表达式成立,执行语句一,否则执行语句二。
(3)if - else if - (else)语句
if(表达式1)
语句1;
else if (表达式2)
语句2;
else if (表达式3)
语句3
else
语句4
if(a > b)
a = b;
else if(a > c)
a = c;
else if (a > d)
a = d;
else
a = f;
其中else语句可以省略
值得注意的是无论是哪种类型,最终只能由一个分支进入,产生一个对应的结果。若语句中没有设置else语句,那么结果为“空”。
其等价于
else
;
若语句中内容不止一个那么则需要大括号扩住。
例
if(a > b)
{
a = b;
c = d;
}
二、switch语句
switch(整形表达式)
{
case 整形常量表达式1:
语句1;
case 整形常量表达式2:
语句2;
default:
语句3;
}
整形表达式包括 整型int, 长整型long(int),长长整形 long long(int) ,短整形short,而因为字符串char类型,在内存中的存储实际上是其阿斯克码的值,所以也属于整型。
switch分支中,由某个表达式进入对应的case语句,执行相应的语句,并且会一直执行到结束,因此一般使用时会在语句中加入break退出。
但是也有一些例外
int n;
scanf("%d", &n);
switch(n)
{
case 1:
case 2:
case 3:
case 4:
case 5:
{
printf("工作日\n") ;
break;
}
case 6:
case 7:
{
printf("休息日\n");
break;
}
default :
{
printf("输入错误\n");
break;
}
}
default语句相当于if- else分支中的else语句,一个switch语句中只能有一个default语句,后面不需要跟随表达式。但是不同的是default可以放置于任意的位置。
int n;
scanf("%d", &n);
switch(n)
{
case 1:
{
printf("1\n");
break;
}
case 2:
{
printf("2\n");
break;
}
default :
{
printf("3\n");
break;
}
}
最后需要注意的是,case语句和default语句本质上是等价的,例如在没有break的条件下如果default夹在case语句中间,default也会按照顺序被执行
int n;
scanf("%d", &n);
switch(n)
{
case 1:
printf("1\n");
default :
printf("3\n");
case 2:
printf("2\n");
}