C/C++条件表达式

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

毕。

猜你喜欢

转载自blog.csdn.net/weixin_45711556/article/details/108720782
今日推荐