目录
一、逻辑运算的结果
1) 与运算(&&)
参与运算的两个表达式都为真时,结果才为真,否则为假。例如:
(5>0) && (4>2)
5>0 的结果是 1,为真, 4>2 结果是 1,也为真,所以相与的结果为真,也就是 1。
2) 或运算(||)
参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。例如:
(5>0) || (5>8)
5>0 的结果是 1,为真, 5>8 的结果是 0,为假,所以相或的结果为真,也就是 1。
3) 非运算(!)
参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:
!(5>0)
5>0 的结果是 1,为真,非运算的结果为假,也就是 0。
二、优先级
逻辑运算符和其它运算符优先级从低到高依次为:
赋值运算符(=) < &&和|| < 关系运算符 < 算术运算符 < 非(!)
三、C 语言条件运算符(? :) 详解
条件运算符,语法格式为:表达式 1 ? 表达式 2 : 表达式
其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为整个条件表达式的值,否则以表达式 3 的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。
使用条件表达式时,还应注意以下几点:
- 条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。
- 条件运算符?和:是一对运算符,不能分开单独使用。
- 条件运算符的结合方向是自右至左。
四、do-while 循环
do-while 循环的一般形式为:
do{
语句块
}while(表达式);
do-while 循环与 while 循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此, do-while 循环至少要执行一次“语句块”。
while的例子
for的例子
五、C 语言跳出循环(break 和 continue)
当 break 关键字用于 while、 for 循环时,会终止循环而执行整个循环语句后面的代码。 break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。
continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。 continue 语句只用在 while、 for 循环中,常与 if 条件语句一起使用,判断条件是否成立。
break 与 continue 的对比: break 用来结束所有循环,循环语句不再有执行的机会; continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。
六、选择结构
选择结构(分支结构)涉及到的关键字包括 if、 else、 switch、 case、 break,还有一个条件运算符? :(这是 C 语言中唯一的一个三目运算符)。其中, if...else 是最基本的结构, switch...case 和? :都是由 if...else 演化而来,它们都是为了让程序员书写更加方便。
七、循环结构
- 除了 while 和 for, C 语言中还有一个 goto 语句,它也能构成循环结构。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,不被推荐,而且 goto 循环完全可以被其他循环取代,所以后来的很多编程语都取消了 goto 语句,我们也不再讲解。
- 对于 while 和 do-while 循环,循环体中应包括使循环趋于结束的语句。
- 对于 while 和 do-while 循环,循环变量的初始化操作应该在 while 和 do-while 语句之前完成,而 for 循环可以在内部实现循环变量的初始化。
- 注意 break 和 continue 关键字用于循环结构时的区别:
① break 用来跳出所有循环,循环语句不再有执行的机会;② continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。 - 此外, break 关键字还可以用于跳出 switch...case 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。