目录:
1. if语句
2. 操作符
3. switch语句
4. while循环
5. for循环
6. do-while循环
7. break和continue语句
8. goto语句
C语言是结构化的程序设计语言,这里的结构指的是顺序结构、分支(选择)结构、循环结构
分支结构主要有:if、switch 循环结构主要有:while、for、do-while
1. if语句
1.1 if
if语句的语法形式如下:
在C语言中,0表示假,非零表示真,当表达式的值为真时才能执行 if 下的语句。
例如:if(3>2)表达式3>2为真;当表达式3<2时为假
1.2 if else
else:可以理解为否则的意思,当if表达式为假时才会执行else下的语句。
1.3 嵌套if
if 和 else 默认后面只跟一条语句,当有多条语句或进行if嵌套时要用{}括起来;
else 的匹配与对齐方式无关,只与离它最近的if 进行匹配。
上图蓝色部分是嵌套在else语句中的if语句,构成多层判断,此部分还可以把{}去掉简写成下图形式,代码意思是:输入一个数,如果等于0输出值是0,后面代码不再执行;否则再进一步判断是正数还是负数。
2. 操作符
操作符一般用于表达式中。
2.1 关系操作符
用于表达两者之间关系的称为关系操作符,主要有:>、<、==、>=、<=、!=。
注意:
C语言中表示等于用==,表示赋值用=,切记不要写错;在判断两数是否相等时为防止手快打错一般把常量放前面,例如:if (3 == n)
2.2 条件操作符
也称为三目操作符,因为有三个操作数(exp1 ? exp2 : exp3)
如果exp1 成立执行exp2,否则执行exp3
例题代码:
2.3 逻辑操作符
逻辑操作符:逻辑与(&&)、逻辑或(| |) 、逻辑非(!)
逻辑与(&&):两侧表达式都为真,才为真;一边为假则整个表达式为假
if (((a + b) > c) && ((a + c) > b) && ((b + c) > a)) 可理解为:必须同时满足三个灰色部分条件,表达式才为真,执行if 语句,有一个不满足则为假。
逻辑或(| |):两侧表达式都为假,才为假;一边为真则整个表达式为真
if( (b != c)) || ((a == c) )可理解为只要满足其中一个条件就可执行 if下的语句
逻辑非(!):表达式为假则为真,为真则为假
i 一开始赋值为0表示假,当在i前面加上!,表达式为真执行 if 下的语句,打印haha
2.3-1 短路
&&:
if(month >= 3 && month <= 5):如果month >= 3为假,整个表达式为假&&右边不再计算,反之为真就继续判断右边表达式;
3. switch语句
也称开关语句。句式如下
expression可理解为打开开关的按键,根据表达式 expression 不同的值,执⾏相应的 case 分⽀,若值无法匹配则执行default下的语句;
expression只能是整型表达式
case后只能是整型常量表达式(不能是变量,也不能是浮点数或其他类型)
在switch中default 和 case的位置可以随意,一般将default放最后
switch语句通过break终止,若没有break会一直执行到遇到break语句或整个switch结束为止
4. while循环
语法结构和if 很像,区别在于if表达式为真执行一次语句就结束了,而while只要表达式为真就一直循环执行语句。
使用while循环必须有跳出循环的条件,不然表达式恒为真将会造成死循环
有多条语句加{}
代码例题:
5. for循环
5.1 语法形式如下
表达式1:用于循环变量的初始化
表达式2:用于循环变量结束的条件判断
表达式3:用于循环变量的调整
for循环首先执行表达式1进行变量初始化;接着判断表达式2是否为真,为真执行语句内容,为假跳出循环;循环语句执行完最后执行表达式3,调整变量的值;然后就一直循环表达式2和表达式3,直至表达式2为假跳出循环。其中表达式1(循环变量的初始化)在整个for循环中只执行一次。
5.2 while和for的区别
有人可能会问while和for都是循环,到底哪一个好用,他们又有什么区别?
(1)while和for的选择要根据个人的实际问题需求来定,大多情况用for循环比较多;
(2)while和for循环都要包含循环变量初始化、判断和调整,在语法中,支持for循环这三部分都省略;认真观察的同学会发现while循环的这三个部分分散,若代码行数增多三者相距较远不易于调试修改,而for循环的三个部分紧凑易修改。
6. do-while循环
do-while循环是使用最少的一种循环,语法形式如下:当有多条语句同样加{}
相比while和for循环,只有在表达式为真时才执行语句内容,do-while则不管三七二十一先执行do下的语句再到while中判断是否表达式为真继续执行语句。所以使用do-while循环,代码至少运行一次。
7. break和continue语句
break跳出整个循环,continue跳过本次循环后面的代码
其实在前面switch语句中就有提到过break,相信大家不太陌生,其中continue在while和for循环中略有不同。
7.1 continue在for中:
上图可以看到i的调整部分放在了continue后,而continue会跳过本次循环后的代码,直接去到判断部分,i的调整被跳过就一直死循环。
7.2 continue在for循环中
对比while循环,同样是打印1-10的数字,同样是加了continue,结果却大不同。
因为for循环的continue只是跳过了本次循环数值的打印,并没有跳过调整部分,所以循环将继续判断,直到表达式为假整个循环结束。
从以上例子也可进一步体现出同一个需求可以用不同的循环实现,具体选择哪一个得看个人
break和continue只能用在分支和循环中,切记不可用来结束函数的调用!!!