前言
通过上一章节的学习,我们了解并明白了条件语句中if语句的使用方法,那么这节课我们就来看看条件语句中的剩下的几个语句的使用方法吧。
目录
关系操作符
1. 关系操作符介绍
C语言之中用于比较的表达式叫做“关系表达式”,而其中要使用的操作符叫做关系操作符。主要为以下6个。
> : 大于运算符
< : 小于运算符
>= : 大于等于运算符
<= : 小于等于运算符
== : 相等运算符
!= : 不相等运算符
关系表达式的返回值一般都是1和0(和if语句差不多,1表示真,0表示假)。
如图所示,
这里很显然a是为5而不等于6,所以输出的应该是上面是0,下面是1,
其实表达是真的话只要是非0即可,但是这里计算机固定值为1,所以就是1.
2. 关系操作符用法
例如:
a > b: 若a为18,b为15,即 18 > 15 则返回1(表示真);
a < b: 若a为18,b为15,即 18 < 15 则返回0(表示假);
6 >= 4: 返回值为1;
d == e: 若d为520,e为1314,即 520 == 1314 则返回值为0
5 != 4: 返回值为1
关系表达式常用于if或while结构。
虽然之前已经讲过了,但是这里还是要强调一遍,相等运算符是“==”,赋值运算符才是“=”,这点很重要,不然以后打代码时可能会出问题。
if (x == 3)
{
printf("%d\n", x);
}
为了防止我们混淆把赋值操作符和相等操作符搞混,使代码变成下面这样,
if (x = 3)
{
printf("%d\n", x);
}
我们可以使用把常量放在前面的办法来避免这样的问题发生,就像这样,
if (3 == x)
{
printf("%d\n", x);
}
有小伙伴可能会想,不就是把3这个常量放在变量前面嘛,怎么避免呢?其实道理很简单,你想常量是什么,是不是就是没有办法改变的量,而计算机在运行时,是把赋值符号右边的值赋给左边,如果我们用上面的写法不小心写成了赋值符号,那就是说把一个变量的值赋给一个常量,但是常量是不能改变的,所以程序就会报错。
可以看出来,这是一个十分实用的办法,如果以后出去找工作这样写面试官肯定给你加分(^^)。
条件操作符
1.条件操作符介绍
条件操作符也叫三目操作符,要有三个表达式组成。表达式1 ? 表达式2 : 表达式3。其含义就是表达式1是真是假,如果是真那输出结果就是表达式2,假的话就是表达式3。也可以认为是if语句简化版。
2.条件操作符用法
我们来看看如下代码
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
if(520 == a)
{
b = 1314;
}
else
{
b = 114514;
}
printf("%d\n", b);
return 0;
}
这串代码我们可以知道,如果a是520的话那就输出1314,但要是不是的话,那就输出114514,这么一大长串代码就是为了输出这个东西,那我们能不能简化一下呢,当然可以,这个时候我们就可以用到三目操作符,让我们想想该怎么用,首先是表达式1,我们想想上面的代码逻辑是不是就是判断a是不是等于520,如果等于的话就是1314,不等于的话就是114514。所以我们就可以这样写。
b = a == 520 ? 1314 : 114514;
a == 520是表达式1,就是来判断真假的,如果是真,那就输出表达式2,不然就是表达式3。所以说它的逻辑和上面的逻辑是一摸一样的,但是却简化了很多,足以见到三目操作符的强大。
但是其弊端也很明显,那就是条件单一,三目运算符的条件必须得是一个表达式能表示出来的,如果条件太多了那就只能老老实实的用if语句了,但是小伙伴们一定要尝试去用用这个语句,因为它在关键时候可以简化代码,让代码的效率更高。
switch语句
1.switch语句的介绍
我们到目前为止已经学习了if语句,三目操作符这两个条件语句了,那我们再来学习一个条件语句吧,那就是switch语句,它本质上也是一个if……else……语句的特殊形式,它把多重else if语句改变成了一种更易用,可读性更好的方式呈现出来。现在让我们一起来看看吧。
2.switch语句的用法
switch语句是把原来if语句的条件用case来划分成对应的分支,如果找不到case对应的分支就执行default分支。
要注意的是switch是if……else……表达式的特殊形式,switch后的表达式必须是整型表达式,而case后的值也必须是整型的常量值。
switch(表达式)
{
case 条件 : 输出
case 条件 : 输出
default : 输出
}
switch语法的使用方法如上,
我们来用 if 和 switch 来进行一个对比,顺便来看看switch语句该怎么使用吧。
我们可以看出来,a%3的结果无非就是三种,0或1或2,于是乎我们便可以用另外一种方法,switch语句。
调试一下看看吧。
嗯,很完美,真的很完美吗,为了严谨,我们再调试一个看看吧。
什么鬼,怎么有两个,我不是只要一个1就可以了吗,为什么会把2带着输出出来(所以说我们有的时候就调试一次可能是发现不了问题的,得多调试几次,当然可能多调试几次也无法避免bug的产生,但是多多少少会减少很多的呢。)?原因是因为switch它刹不住车,当它看到它要的那个分支时它就会开始往那个地方开,但是因为刹不住车,所以就会把下面几个分支一起输出出来,那有没有什么解决办法呢?当然有,给它一个刹车片嘛。
2.1 break语句
从上面的代码我们可以知道,switch语句的功能只能告诉计算机从哪个入口进入程序,却没法知道从哪个入口出来,这个时候我们就可以使用break语句来告诉计算机我们应该停下来。所以说break的作用就是跳出一个代码块。
可以看出来在这里switch在识别到break时就自动跳出switch的条件语句了。当然,我们也不一定要每一个语句都使用一个break,就比如最后一个case就可以不使用break,因为最后一个语句运行完了就会自动的跳出switch语句,所以就可以不用输入。当然,还有一种情况也可以省略一些break,比如如图所示,
像这种输出有很多重复的就可以省略掉部分的break而不影响程序的正常运行。
同时我们也得知道,case后面的整型常量可以不按照顺序来排列,但是要注意计算机进入的分支,不要漏写break导致程序出错。
2.2 default语句
default本质上其实和else差不多,都是除了它们上面的条件都不满足的其他条件的输出。
如图所示,
我们可以看到,如果我们输入除了1~7的整数外的其他数字,那他就会输出我们输入错误的提示,当然,我们在增加或减少case时要注意break的变化随时增加和减少。
要注意的是,并不是default一定要放在最后一个,我们完全就可以把它放在其他位置,只是我们一般把它放在最后一位罢了,我们可以放在switch的任意位置,但是不要忘记加break哦;
总结
这就是条件语句的全部的内容啦,小伙伴们可以花一定的时间去消化和吸收,我们总共学了三个条件语句,下一章节我们就可以来看看循环语句啦,等我们循环语句都学完了,就可以做一些很有趣的玩法啦,比如让计算机输出一个圣诞树之类的。感谢小伙伴能跟随着我学到这里,希望我们接着加油,一起成为一个很厉害的程序员,谢谢大家啦。