c - 这两种说法是否等价?

标签 c if-statement

声明 1

return (x1 > x2) ? ((x1 > x3) ? x1: x3): ((x2 > x3) ? x2: x3);

声明 2

if(x1>x2){
    if(x1>x3){
        return x1;
    }
    else{
        return x3;
    }
}
else if(x2>x3){
    return x2;
}
else return x3;

最佳答案

是的,它们是等价的,前提是x1x2x3的类型都相同。如果类型不同但可转换为返回类型,则语句 1 将导致编译错误。

关于c - 这两种说法是否等价?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55013867/

相关文章:

c - 在 C 中,fopen/fread/fgets PID 是安全的吗?

我的 If 语句中的 C# 语法问题

arrays - 根据应用于另一个向量的条件创建向量

Python如何在一个if语句中检查变量是否存在及其长度?

C++ : How to reduce conditional statements

c - 需要帮助解决这个涉及抛硬币的编程问题

c - 使用 sscanf 从 C 中的字符串常量中读取单个字符

c++ - 使用 libconfig 存储加密数据

C结构解析问题

c++ - 将显示数组的 5 个 for 循环压缩为 1?