-
操作符
-
关系操作符
-
关系运算符 >
⼤于 < ⼩于 >= ⼤于等于 <= ⼩于等于 == 相等 != 不相等 -
关系操作符返回值为0(假)或1(真)
-
关系操作符从左向右依次计算
-
-
条件操作符(三目操作符)
- 形式为:表达式1 ? 表达式2 : 表达式3
- 如果表达式1为真,则结果为表达式2;否则结果为表达式3
-
逻辑操作符
- 包括 &&(逻辑与)、||(逻辑或)、!(逻辑非)
- 短路和短路求值:如果左边的表达式满⾜条件,就不再对右边的表达式求值
-
-
分支结构
-
if语句
-
if(expression) { if(expreesion) { … if(expreesion) {statement} else if(expreesion) {statement} else {statement} … } }
-
if后的expression为真则语句执行;if可以嵌套
-
if,else if和else默认都只控制⼀条语句,控制多条语句时要用{}将代码括起来
-
悬空else:else 总是跟最接近的 if 匹配
-
-
switch语句
-
switch (expression) { case value1: statement; break; case value2: case value3: statement; break; … default: statement; break; }
- switch后的expression必须是整型表达式;case后的value必须是整型常量
- 每个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句
- case和default语句没有顺序要求,习惯将default子句置于最后
-
-
-
循环结构
- while语句
-
while(expression) { statement }
-
循环判断表达式是否为真,为真则语句执行(if仅判断一次)
-
- for语句
-
for(expression1;expression2;expression3)//初始化;判断;调整 { statement }
-
表达式1初始化循环变量
-
判断表达式2是否为真,为真则语句执行,随后执行表达式3调整变量循环判断
-
for循环的初始化、判断和调整三个部分非常集中(若用while则较为分散)
-
-
do-while语句
-
do { statement }while(expression)
-
先执行后判断,循环体语句至少执行一次(while先判断后执行)
-
-
3种循环语句均可互相嵌套
- while语句
-
转向语句
- break语句:跳出本层循环(永久终止循环)
- continue语句:跳过本次循环(跳到下次循环)
- goto语句
-
goto skip; … skip:
-
2.goto语句可以实现在同⼀个函数内跳转到设置好的标号处
3.缺点:如果使用不当,会在函数内部随意跳转,打乱程序执行流程
优点:在多层循环的代码中,如果想快速跳出,使用goto语句就非常方便