C/C++条件表达式使用三目运算符 ?:完成,适当条件下可与 if else 语句相互替换。 条件表达式优点在于可直接返回表达式运算的结果。
条件表达式的使用分为三个部分,示例如下:
c ? a : b;
其中 c 为判断条件,a,b 可为具体的值或是算式。 表达式先对 c 进行判断,若 c 的判断结果不为 0 (或 true),返回 a 的值或运算结果;若 c 的判断结果为 0 (或 false),则返回 b 的值或运算结果。如下:
a,b 为具体数值:
a > b ? a : b;
a,b 为算式:
a > b ? (a - b) : (b - a);
示例程序: 求两个数中的最大值:
#include <stdio.h> int main() { int a, b, max; scanf("%d%d", &a, &b); max = a > b ? a : b; printf("%d", max); return 0; }
等同于
#include <stdio.h> int main() { int a, b, max; scanf("%d%d", &a, &b); if (a > b) { max = a; } else { max = b; } printf("%d", max); return 0; }
示例程序: 求两个数的差,结果总是为大的数减去小的数
#include <stdio.h> int main() { int a, b, res; scanf("%d%d", &a, &b); res = a > b ? (a - b) : (b - a); printf("%d", res); return 0; }
等同于
#include <stdio.h> int main() { int a, b, res; scanf("%d%d", &a, &b); if (a > b) { res = a - b; } else { res = b - a; } printf("%d", res); return 0; }
我们还可以将表达式直接输出或者将其作为函数返回值。
直接输出表达式:
#include <stdio.h> int main() { int a, b; scanf("%d%d", &a, &b); printf("%d", a > b ? a : b); return 0; }
表达式作为函数返回值:
#include <stdio.h> int getMax(int a, int b) { return a > b ? a : b; } int main() { int a, b, max; scanf("%d%d", &a, &b); max = getMax(a, b); printf("%d", max); return 0; }
毕。
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句