前言
前面我们说了C语言中支持的变量类型和运算符, 这一部分我们要聊到的部分, 也是任何编程语言都会支持的, 分支语句和循环语句, 也算是很基础的基础, 那我们现在就开始叭~
分支语句
if 分支
单if
如上图, 如果说满足了一个条件, 那么就会进入这个分支, 然而如果不满足这个条件, 就不会进入这个分支了~~
双分支 if() { ... } else { ... }
这里如果只有两种分支, 并且比较简单的话, 可以使用 三目运算符替换, 比如说:
如果说, if 分支里面只有一句代码, 这里的 { } 是可以省略的~, 这里的只有一句代码, 在while循环和for循环中也是适用的~
多分支 if() { ... } else if () { ... } else {}
陷阱
= 和 ==
对于新手使用 if 分支来, 假如说我们想要判断一个num是否等于10, 很多新手容易写成下面的样子:
这个时候, 虽然num不等于10, 但是分支语句任然是输出了 num = 10, 这就是因为我们想要判断num是否等于10, 却把判等符号写成了赋值符号, 赋值符号属于是关系运算符的一种, 其返回的结果是所赋的值, 比如 num = 10, 返回的结果就是10, 这个我在运算符那一部分聊过了, 大家有兴趣可以去看看~, 所以就会进入if的分支, 输出num = 10. 所以正确的写法应该是 num == 10, 我们为了避免这样的陷阱, 可以写成 10 == num 的形式, 因为如果我们写成 10 = num, 这样的写法, 在编译器编译的阶段就会报错了, 因为10这样的立即数, 是不能被赋值的, 如果赋值就会报错.
多个条件
如果想要判断多个条件 使用 && 或者 || , 有一种写法, 如果是 判断一个值是否 大于50 并且小于100
是这样写的:
if(num > 50 && num < 100)
{
// ...
}
下面的写法是不对的
if(50 < num < 100)
{
// ...
}
这样的写法, C语言编译器是怎么处理的呢? 先判断num是否大于50, 如果满足则返回一个1(逻辑真), 如果不满足则返回一个0(逻辑假), 之后再使用这里的0和1去和100比较~
switch 分支
switch的意思是开关, 交换, 在这里的意思应该是开关, 类似满足哪一个分支, 就进入那个开关一样
如果进入任何一个分之后, 如果其中没有break, 就会一直向下执行, 直到执行结束或者遇到break, 如下:
有这样的break前提, 我们就有更多的玩法了, 比如说:
这里day等于2, 就会进入case2, 这个分支, 之后因为case2中没有break, 会向下继续执行, 直到遇到break
default
default 默认分支是switch是一个默认分支, 当没有任何一个分支满足的时候, 就会进入default 默认分支
循环语句
循环语句, 如果说我们想让一段代码执行很多次, 那么我们就可以使用循环语句了.
循环一共有三个部分: 初始条件, 循环条件, 更改条件 我们在写循环的时候, 也是要关注这三个部分
while 循环
初始条件 :i = 0, 循环条件 i <= 100 更改条件 ++i
for 循环
初始条件 :i = 0, 循环条件 i <= 100 更改条件 ++i , for ( 初始条件 ; 循环条件 ; 更改条件)
相比较 while( ) 循环 和 for( ) 循环两种循环结构来说, for 循环 的结构比 while 循环的结构更加紧凑, while 循环, 新手在写的时候通常 会忘记写 变化条件, 这里说的时候大家可以在以后写的时候注意一下~
当我们学到了循环语句, 就有很多玩法了, 比如说输出一个九九乘法表, 或者在终端打印一个有规则的图形, 比如说下面的这两种循环的九九乘法表写法:
小结
分支语句和循环语句, 第一次学习的时候可能在写的时候比较困难, 但是我们一定要多多练习提升代码能力, 不然日后就很难将自己的想法转发成代码了, 这里为大家推荐一个刷题的网站: 牛客
入门题:
算法题: