条件运算符与循环控制

条件运算符的语法格式为

条件运算符

条件运算符的语法格式为

表达式1 ? 表达式2 : 表达式3

条件运算符是C语言中唯一的一个三目运算符, 其求值规则为: 如果表达式1的值为真, 则以表达式2 的值作为整个条件表达式的值, 否则以表达式3的值作为整个条件表达式的值。

条件表达式通常用于赋值语句之中。

两个数求最大值可以简化为:max = (a>b) ? a : b;

ATTENTION

  1. 条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。 因此max=(a>b) ? a : b;可以去掉括号而写为max=a>b ? a : b;

  2. 条件运算符?和:是一对运算符,不能分开单独使用。

  3. 条件运算符的结合方向是自右至左。 例如a>b ? a : c>d ? c : d;应理解为:a>b ? a : ( c>d ? c : d ); 这也就是条件表达式嵌套的情形,即其中的表达式又是一个条件表达式。

跳出循环

在利用循环结构(forwhile 循环)编程时,我们经常需要提前结束循环(在循环条件成立的情况下强制结束循环),或者跳过某些迭代,此时就可以使用 break 或者 continue 关键字。

一次循环称为一次迭代, 例如 for(int i=1; i<=10; i++) 会循环 10 次,所以有 10 次迭代。

break

作用:“跳出”整个语句,结束整个语句的执行

当程序执行到 break 语句时,会立即终止整个循环,并继续执行循环之后的代码。

ATTENTION 一个 break 只能跳出一个 while/for 循环。 这意味着在多层循环中,一个 break 语句只向外跳出一层; 如果需要跳出多层循环,那么每层循环都需要一个 break 语句。

continue

作用:跳过当前迭代,进入下一次迭代

程序一旦遇到 continue,就会忽略循环体中的剩余语句,直接进入下一次循环。 这意味着,位于 continue 后面代码,在当前迭代(当前循环)中不会被执行,但循环并不会因此而终止,而是继续进行下一次迭代。

break 和 continue 的区别

C语言 break 和 continue 都能改变循环的执行流程,但它们之间存在明显的区别:

  • break 会完全终止循环,将执行流程转到 while/for 后面的代码;这意味着,整个循环中的任何语句都不再有执行机会。
  • continue 只是结束本次迭代(跳过当前迭代的剩余代码),直接进入下一次迭代;如果循环条件成立,整个循环还会继续执行。

相关笔记