前言:学好C语言前提是熟悉语法,其次是对代码逻辑的掌控,这里我简单总结一下分支与循环。
1. if语句
1.1if
if语句语法如下
1 if(表达式) →表达式一般是等式或不等式,例如:a==b,a<b
2 {语句} →当表达式为真(成立)时,语句执行,为假(不成立)时,语句不执行
1.2 else
通常情况下我们需要用到if...else语句,其语法如下:
1 if(表达式)
2 语句1
3 else →这里不需要表达式
4 语句2
解释:如果语句1为假,那么执行语句2;如果语句1为真,那么直接执行语句1,不执行语句2
1.3 分支如何包含多条语句?
if和else语句默认都只控制一条语句
那么该如何控制多条语句?
我们只需要用 { } 将if,else后所有语句括起来,例如:
1.4 多重判断(if嵌套)
在 if...else 语句中 ,else可以与另一个if语句连用,构成多重判断。例如:灰色部分嵌套在108行 if 中
利用嵌套可以完成多重if语句,在这里不做过多解释
1.5 if...else就近原则(else悬空)
如果多重嵌套中有多个if else 组合,我们应注意,else总是与最近的if相组合,例如:
在下面代码中
126行else 其实是与 124行if 结合,并不是与 123行if 结合
注意:并不是编译器自动对齐就代表与谁相结合
2. 关系操作符
关系操作符主要有下面六个:
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
关系表达式通常返回0或1(假或真)常用于if或while
这里着重说明:
== 和 = 不是一个东西
==是等于的意思,而=是赋值的意思
同样强调:
多个关系运算符不宜连用,例如:
i<y<x →这是错误的写法
正确写法: i<y && y<x
&&的意思是"并且"的意思
3.条件操作符(三目操作符)
语法逻辑:
exp 1 ? exp 2 :exp 3
对于这三个表达式:如果exp 1为真 exp 2计算,如果exp 1为假 exp 3计算
我们不妨与if语句对比一下清楚逻辑
这两个是相同逻辑,具体如何使用不再赘述
4.逻辑操作符
主要有以下三个操作符:
! : 相当于“反”(逻辑取反运算符).
&& : 相当于“并且”(与运算符).
|| : 相当于“或者”(或运算符).
对于这三个,我依次举例子搞清其逻辑:
! :
= 是等于, =! 是不等于
flag(目标)为真, !flag 为假
&& :
对于上面如果 i<y 或 y<x 只要有一个不成立,那么这条语句就为假.
|| :
i<y || y<x
对于上式,如果 i<y 或 y<x 只要有一个成立,那么该条语句就为真. (可与 && 对比)
特别注意 :
对于
i<y && y<x 和 i<y || y<x 来说
只要 i<y 为假,那么 y<x 就不再执行,这称之为短路
5.switch语句
5.1 if与switch对比
switch 与 if 有着类似功能,但语法不一样,与 if...else 类似
在此,我把 switch 和 if 进行对比,突出 switch 的语法
强调:case 后的数字前要有空格
以上两个代码运行结果一样
与 if 语句不同的是
switch 语句中每个 case 语句执行完成后需要加上 break 进行跳出语句
否则代码会继续往下执行.
特别注意:switch 后必须是整型,case 后的值也必须是整型
5.2 swicth 中的 default
如果 case所有语句 都不符合,我们要么就不处理,要么就用 default
我还用上面例子说明:
如果余数既不是0,又不是1和2,或者我们输入的数字不符合要求,那么我们可以用default
来进行解释或作为结尾.
对此需额外注意:对于 default和case 的先后顺序没有要求,也就是说只要符合实际需求,就可以运行.
6. while循环
这里同样拿 if 和 while 进行对比
while 进行表达式1为真,打印“hehe”,打印后进行循环,再次进入while(1),到为假时停止循环
if 进行表达式1为真,打印“hehe”,打印后结束语句.
7. for循环
for循环是三大循环中使用最多的循环
语法为:
for(表达式1;表达式2;表达式3) → 初学者要注意表达式之间用“ ; ”隔开,不是“ , ”
表达式1 循环变量初始化
表达式2 循环结束判断
表达式3 循环变量调整
我用一段代码来清楚逻辑
对于以上代码监视流程:
i=1: for给予i值为1
i<=10: 判断i是否小于10(是否真)
如果小于(真),那么执行 printf,并随后执行 i++,接着循环
如果大于(假),那么跳出 for 循环,循环结束
所以最后代码打印“ 1,2,3,4,5,6,7,8,9 ,10”
8.do while 循环
此循环语句使用较少,我简单说明其语法:
1 do
2 语句;
3while(表达式)
这种循环与while 和 for 循环不太一样
对于while 和 for 循环 它们先判断条件真假,再选择是否进入循环
而do while 是先进入循环,在判断是否为真,如果为真,进入下一个循环;如果为假,则结束循环.
9.break和continue
在上面三大循环中
break的作用一致:永久的终止循环
而对于continue,我们把 while 和 for 循环做对比,如下:
continue 可以帮助我们跳过某次循环 continue 后的代码,直接来到循环判断(调整)部分
在图中,我用红色箭头表示while和for循环执行 continue 后会到哪.
10.goto语句
这是一个值得注意的语句,虽然我们使用不多,但我们要谨慎使用它,使用不当会打乱代码进程.
我用一个例子解释它的语法:
利用 goto 语句,我们可以实现本来要打印“hehe”和“haha” ,但是我在打印“hehe”后直接跳到打印“hello”处,实现跳跃.
11.总结
分支与循环是C语言中重要的一部分,如果想利用好他们,我们不仅需要熟练运用它们的语法,还要把他们结合起来(循环嵌套),多在实战中运用,才能实现它们的价值。
(本人是新手,如有错误,欢迎指出) 创作时间:2023/11/17