目录
前置:关系操作符和逻辑操作符
关系操作符
逻辑操作符
其他补充知识
分支语句:
一、if类
基本式:if...
变式1:if...else...
变式2:if...else if...else...
变式3:嵌套
二、switch
循环语句:
一、while
二、for
三、do...while
四、提前离开循环
前置:关系操作符和逻辑操作符
关系操作符
C语言中用于判断两个事件之间的关系的操作符主要有六个
- < 小于
- > 大于
- <= 小于等于
- >= 大于等于
- == 等于
- != 不等于
需要注意的是 “==” 才是用来判断是否相等的符号, “=” 表示的是赋值的运算
上述六个操作符当判断的结果成立,即结果为真时会返回1,否则返回0
逻辑操作符
C语言中用于逻辑判断主要有三个
- && 与
- || 或
- ! 非
与(&&):当符号两边同时为真时总结果才为真
(a > 0) && ( b > 0)
当a大于0,并且b也大于0时总结果才为真
或(||):当符号两边有任意一个为真时总结果就可以为真
(a > 0) || ( b > 0)
当a大于0,或者b大于0时总结果就是真
非(!):改变单个条件的真假,如果是真就变成假,如果是假就变成真
a = 0;
b = !a;
因为a等于0,所以!a等于1,所以b等于1
其他补充知识
C语言逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
分支语句:
一、if类
if在英语语境里就有“如果”的意思,可以用它来判断选择程序的执行路径,其具体使用为
基本式:if...
if( 判断的条件结果为真 )
{执行的操作...
}
当判断的条件结果为真,即结果非0时就会进入大括号内执行代码,否则就会跳过大括号内的代码往下执行
变式1:if...else...
if( 判断的条件不等于0 )
{执行的操作...
}
else
{执行的操作...
}
if和else可以看做将全集分成两份互斥的事件,当if内的条件不成立时必然会执行else内的代码
变式2:if...else if...else...
if( 判断的条件不等于0 )
{执行的操作...
}
else if( 判断的条件不等于0 )
{执行的操作...
}
else
{执行的操作...
}
else if 相当于把全集再添加一个事件,这个事件同样与另外两个事件互斥,可以添加多个else if来继续在全集内添加与其他事件互斥事件
变式3:嵌套
if( 判断的条件结果为真 )
{if( 判断的条件结果为真 ){执行的操作...}else{执行的操作...}
}
else
{if( 判断的条件结果为真 ){执行的操作... }else{执行的操作...}
}
if类可以存在嵌套,当没有大括号时,else总是和最近的前一个if作为一体
二、switch
switch在英语语境里就有“选择”的意思,也可以用它来判断选择程序的执行路径
它和if...else if...else功能一样,不过把多重的 else if 改成更易用、可读性更好的形式。
switch( 用于作为路径选择的参数 )
{case 得到的参数是变量1:执行的操作...break;case 得到的参数是变量2:执行的操作...break;...default:执行的操作...
}
上述伪代码通过判断用于作为路径选择的变量的不同值执行相应的case里的代码,当所有的case都不满足时则执行default里的内容
注:
- switch 后的 用于作为路径选择的变量 必须是整型表达式
- case 后的值,必须是整形常量表达式
- 每一个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个switch语句。如果某一个 case 语句的后边没有 break 语句,代码会继续玩下执行,有可能执行其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。
循环语句:
一、while
while语句是一个简单的循环语句,当判断的条件结果为真时就进入while语句内执行响应的操作,当执行到大括号内最后一条代码时返回最开始的条件判断,如果判断的条件仍然为真就再次进入while语句内执行响应的操作,如此反复执行直到判断的条件结果为假时才跳出循环
while( 判断的条件结果为真 )
{执行的操作...
}
二、for
for循环语句也是C语言中的常见循环语句,其语法结构为
for( 循环变量初始化; 循环结束条件; 每执行完一次for循环循环变量的调整 )
{执行的操作...
}
整个循环的过程中,循环变量初始化部分只被执行1次,其他两个参数会被反复执行。三个参数并不是一定都要使用的,可以空着不写,例如当循环结束的条件为空时表示该循环为死循环。
三、do...while
while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳 出循环; 而 do...while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。所以在 do...while 语句中循环体是至少执行一次的,这是 do...while 循环比较特殊的地方。其语法结构为
do
{执行的操作...
}while( 判断的条件结果为真 )
四、提前离开循环
1.break
执行break语句可以做到终止该语句所在的循环
2.continue
执行continue语句可以做到跳过本次循环中continue之后的语句,直接开始执行下一次的循环
3.return
对于有返回值的函数,执行return语句可以做到终止该语句所在的函数,直接返回函数值
4.goto
使用goto语句可以使程序跳到任意你想让它跳转执行的位置,但是不建议使用goto,因为 goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以建议是能不用尽量不去使用;但是 goto 语句也不是一无是处,在多层循环的代码中,如果想快速跳出使用 goto 就非常的方便了。
int main()
{int i = 0;for( i = 0; i < 100; i++ ){执行的操作...要去的地方:{执行的操作...} if( i == 50){goto 要去的地方:}执行的操作...}
}注意:“要去的地方”在实际使用时根据自己的需要起名字