文章目录:
一、
1.1 关系操作符
1.2 条件操作符:
1.3 逻辑操作符:
1.4 if语句:
1.5 else语句:
1.6 if,else的多层嵌套:
二、
2.1 switch循环
2.1.1 switch循环中的break:
2.1.2 switch语句中的default:
2.2 for循环:
2.3 while循环:
2.4 do-while循环:
2.4.1 do-while循环中的break和continue:
2.4.2 for循环中的break和continue:
2.3 goto语句:
一、
1.1 关系操作符
在C语言中用于比较的表达式,称为 “关系表达式“,里面使用的运算符就称为“关系运算符”。以下6个为常用运算符。
1. a==b == -> 相等运算符
2. a<=b < -> 小于等于运算符
3. a>=b > -> 大于等于运算符
4. a!=b != -> 不相等运算符
5. a>b > -> 大于运算符
6. a<b < -> 小于运算符
关系表达式通常返回 0 或 1 ,表示真假。 在
C语言中, 0表示假,所有非零值表示真。
注意:
相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不小 心写出问题
,它可以运行,但很容易出现意料之外的结果。
在图中,‘=’表示对元素赋值,‘==’表示判断左右两边元素是否相等。为了防止出现这种错误,有的人喜欢将变量写在等号的右边。这样的话,如果把 ‘==’ 误写成 ‘ = ’,编译器就会报错。
if(0==a)
另⼀个需要注意的是:多个关系运算符不宜连用。
a>b>c 连续使⽤两个大于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,
即不是保证变量 b 的值在 a 和 c 之间。因为关系运算符是从左到右计算,
所以实际执⾏:
(a>b)>c
上述中:a > b 返回 0 或 1 ,所以最终是 0 或 1 与变量 c 进行比较。因此如果想要判断变量 b
的值是否在 a 和 c 之间,应该使用下面的写法。
a>b&&b>c
这里“&&”操作符表示与,等价于英语中的and。这里我们可举一个例子:判断价格
![](https://img-blog.csdnimg.cn/direct/de342f1f24974c14b405ddf66a52d5cd.png)
这是因为,我们先拿10和price中存放的5比较,表达式5<10为假, 10<price的结果是0,再 拿0和20比较,0<20为真,所以打印了买得起。那么代码该如何写呢?请看下图:
![](https://img-blog.csdnimg.cn/direct/e424c2e4183949d5bc3b4db1bfa36a15.png)
1.2 条件操作符:
条件操作符又叫三目操作符。需要三个操作数。
exp1?exp2:exp3
![](https://img-blog.csdnimg.cn/direct/dd2af74912d84630b53e1495aa76d2a5.png)
注意:无论真假,计算的结果是整个表达式->(exp2或exp3)的结果。
1.3 逻辑操作符:
1. ! 逻辑取反运算符(改变单个表达式的真假)。
2. || 或运算符,或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
3. && 与运算符,并且的意思(两侧的表达式都为真,则为真,否则为假)。
![](https://img-blog.csdnimg.cn/direct/5e65478de70441a283fae1026505cd6c.png)
1.4 if语句:
if(表达式)
语句
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行 。在C语言中,0为 假,非0为真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句 执行。
例子:比较两个数的大小
![](https://img-blog.csdnimg.cn/direct/d0942429fe9641e19d2223da447ba80f.png)
![](https://img-blog.csdnimg.cn/direct/422911c5fd6c4d1a9322676c392bde72.png)
1.5 else语句:
else语句需要跟if语句搭配使用。当if语句中的表达式为假时,跳出if语句 ,执行else语句中的表达式。
If
{
语句;
}
else
{
语句;
}
默认在 if 和 else 语句中都只控制一条语句。比如:
![](https://img-blog.csdnimg.cn/direct/63ff3ebb9d434403b934a5978551c9b7.png)
上面的代码,你会发现输入的值不管是>2 还是<2,"存在a" 都会打印在屏幕上。
这是因为 if 语句只能控制一条语句,就是 printf("%d",a); if语句为真,打印a。为假,不打印。对于 printf("存在a"); 是独立存在的。
如果我们要if语句同时控制2条语句,怎么办呢?那就要使用 {} 将代码括起来,
else后面也可以跟上大括号
。
1.6 if,else的多层嵌套:
![](https://img-blog.csdnimg.cn/direct/18cc4f78a9774093b339e00e16f6450f.png)
注意:else 只跟离自己最近的上一级 if 结合。
二、
2.1 switch循环:
switch 语句是一种特殊形式的 if...else 语句,用于判断条件有多个结果的情况。它把多重
的 else if 改成更简单、可读性更好的形式。
switch(a)
{
case?:
||
||等
default:?
}
根据表达式 a 不同的值,执行相应的 case 分支。如果找不到对应的值,
就执行 default 分支。
注意:
1.
switch
后的 a 必须是整型表达式
2. case后的值,必须是整形常量表达式
如此以来,我们就可以用switch来表达星期了,如下图:
上述的代码中,我们要注意的点有:
1. case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个switch语句。
2.1.1 switch循环中的break:
可能我们有些人会好奇,如果把break去掉会发生什么?这里我们就不卖关子了!
switch 语句也是有分支效果的,只有在 switch 语句中使用 break 才能跳出 switch 语
句。
如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执行。
有可能会执行其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。所以在 switch 语句中 break 语句是非常重要的。
2.1.2 switch语句中的default:
在使用switch 语句的时候,我们经常可能遇到一种情况,比如 switch 后的表达式中的值无法匹
配代码中的 case 语句时,这时候就得在 switch 语句中加入
default 子句。
switch 后边的 a 的结果不是 case语句中的结果时,就会执行
default 子句。
注意:
在switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实
际需求就行。
2.2 for循环:
for 循环的语法形式如下:
for(表达式1; 表达式2; 表达式3)
{
语句;
语句;
语句;
}
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
首先执行表达式1 初始化循环变量,接下来就是执行表达式2 的判断部分。
表达式2的结果如果
==0,则循环结束;表达式2的结果如果 !=0 则执行循环语句,循环语句执行完后,再去执行表达式。
表达式3调整循环变量,然后再去表达式2的地方执行判断, 表达式20的结果是否为0,决定循环是否继
续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循
环,直到结束。
2.3 while循环:
while(表达式)
{
语句;
}
![](https://img-blog.csdnimg.cn/direct/c1830461ab1d4e019bf2a2f3f015efff.png)
对于if表达式,只打印一次 a 。 对于while语句,因为等式成立,死循环打印 h 。
2.4 do-while循环:
do
{
语句;
}while(表达式)
![](https://img-blog.csdnimg.cn/direct/2026406ff3de4652b389b5fca08a8f7a.png)
在 do while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的
结果是!=0,则继续循环语句; 判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体至少执行一次,这是 do while 循环中比较特殊的地方。
例如:打印数字 1-5
2.4.1 do-while循环中的break和continue:
break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。 continue 的作用是跳过本次循环 continue 后边的代码。
例如:
![](https://img-blog.csdnimg.cn/direct/c42ffdeed2dc42d2998122bdedd43735.png)
![](https://img-blog.csdnimg.cn/direct/7efac624bb6449f98a95ce1ee91d01a6.png)
2.4.2 for循环中的break和continue:
在for循环中break和continue的作用与在while循环中的作用一样。
![](https://img-blog.csdnimg.cn/direct/9c5bbeef9be74817ab689489e75936b6.png)
![](https://img-blog.csdnimg.cn/direct/cfa68c74337c4681badb76ac98a22c2f.png)
注意:
do while循环中的break和continue
的作用和 while 循环中几乎一模一样,这里就不再详细述说
2.3 goto语句:
C语言提供了一种非常特别的语法,就是 goto 语句, goto 语句可以实现在同一个函数
内跳转到设置好的标号处。
例如:
这里jiuhuui跳过对"hehe"的打印。同理,goto语句也可以改变位置。
下图就是死循环打印
goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,进而会打乱程序的执行流程,所以
能不用尽量不去使用goto语句;但是 goto 语句在多层循环的代码中,可以快速跳出,这无疑
就非常的方便了。
总结:
以上就是今天要讲的内容,希望大家多多点赞支持转发,本文耗费了小编大量时间,如有问题,请@作者纠正错误。