Arduino - 条件运算符 ? :

条件运算符 ? : 是 C 中唯一的三元运算符。

? : 条件运算符语法

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

首先对表达式 1 求值。如果其值为真,则对表达式 2 求值并忽略表达式 3。如果表达式 1 求值为假,则对表达式 3 求值并忽略表达式 2。结果将是表达式 2 或表达式 3 的值,具体取决于它们中哪个求值为真。

条件运算符从右到左关联。

示例

/* 查找 max(a, b): */
max = ( a > b ) ? a : b;
/* 将小写字母转换为大写字母:*/
/*(实际上不需要括号)*/
c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;

条件运算符的规则

  • 表达式 1 必须是标量表达式;表达式 2 和表达式 3 必须遵循以下规则之一。
  • 两个表达式都必须是算术类型。
  • 表达式 2 和表达式 3 经过通常的算术转换,从而确定结果类型。
  • >两个表达式都必须是 void 类型。结果类型为 void。

arduino_control_statements.html