目录
1.if 语句
关于if和else的匹配问题
2.switch 语句
2.1 switch 语句的结构书写
2.2 switch 语句的break
2.3 case 与 default 有没有顺序区别呢?
在生活中我们经常面对选择,c语言同样也有相应的语句来处理选择,这便是 if 语句。if 语句中表达式为真,就执行 if 的代码块。
#include
int main()
{
int n = 0;
int a = 10;
scanf("%d", &n);
if (n > a)
{
printf("大于a\n");
}
return 0;
}
在上述代码中,如果输入的 n 的值大于a,就执行if 语句的printf. 这很好理解。
接下来我们该如何让选择更加多样化呢?这时我们引入 else if 和 else 语句,让选择更加丰富。
#include
int main()
{
int n = 0;
int a = 10;
scanf("%d", &n);
if (n > a)
{
printf("大于a\n");
}
else if (n == a)
{
printf("等于a\n");
}
else
{
printf("小于a\n");
}
return 0;
}
要注意上述代码最多只会进去一个语句,也就是说如果条件都满足上述语句,只会进去最开始就符合条件的语句。
当 n 输入的值为15时,它符合if 和 else if 语句时,它只会进去一个语句块,这便时最先符合的if 语句。
当然我们实际写代码时一般是不会让if ,else if,else的表达式条件有重复出现的情况,毕竟这样就没啥意义用这些语句。如果我们确实有需要满足某个条件能做出两个及以上的选择的话,我们可以多次使用if 语句就可以了。下面让我们看看代码的实现情况吧。
多次使用if语句就可以实现你需要的能做出多种选择的效果了。
当看到这样的代码时,我们该如何分析呢?这是我们要记住else 语句总是和离它最近的if 语句进行一 一匹配对应的。那么根据上述代码,我们可以看出else语句是与if(n == a) 进行匹配的。
除了 if 语句之外,在某些情况下,我们也会使用到switch 语句,switch语句的特点就是比较简洁明了。让我们来看看switch 语句的代码吧。
#include
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;
default:
printf("输入错误\n");
break;
}
return 0;
}
首先我们要在switch的括号内输入表达式,但要注意必须使用的是整形或常量表达式,这是语法规定。
接着我们就要写出case 与 default 语句,在此之前我们就要了解什么是case 和 default.
case 后面跟着表达式的值,如果表达式满足case 后的值,那么程序就会进入到对应的case 内部,去执行case 所包含的代码块。
default 就更好理解了,就是表达式的值和所有的case 都不能匹配的话,程序就会进入到default语句中,执行default 语句所包含的代码块。
那么case 和 default 语句,我们可以形象地理解为一扇扇地大门,switch 语句地表达式的值就像一把钥匙,当钥匙能和那扇大门进行匹配的时候,我们就可以打开对应的大门。
从上面的switch 代码中,我们不难发现有break 的存在,那break 又是什么意思呢?其实break 是让程序跳出switch 语句,让我们看看有break 和 没有break 的区别吧。
有break的情况
没有break 的情况
从上面代码情况,我们可以看到当表达式的值满足其中一个case 情况下,如果没有break 的话,程序将会一直往下执行代码,直到遇到break 或者 整个switch 语句都执行完,程序才跳出switch语句。
答案是没有!
下面看看代码运行吧。
为什么这么说呢?我们可以想象一下,我们拿着一把钥匙,是不是只能打开相应的东西呢?在switch 语句中也是一样的,当switch 满足某个case 条件就会进入到相应的case 里面去,如果都不满足,也没关系,我们有default 可以处理这些不满足的条件,也就是去执行default 的语句。
但是我们一般习惯将default 语句放在所有的case 语句之后。
感谢您的阅读,希望这些内容能帮到您。如果可以,能点个赞 ,给个关注吗?我会在本专栏上持续推出作品。