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;
}
毕。