多层三目运算符


对于多层三目运算符,从右往左看

#include <iostream>
#include <string>

int main()
{
    std::string level ;
    unsigned grade = 0 ;

    grade = 99  ;
    level = (grade>90) ? "高分飘过" : (grade<60) ? "真鸡儿菜,挂科了" : "及格万岁";
    std::cout<<level<<std::endl;

    grade = 88  ;
    level = (grade>90) ? "高分飘过" : (grade<60) ? "真鸡儿菜,挂科了" : "及格万岁";
    std::cout<<level<<std::endl;

    grade = 59  ;
    level = (grade>90) ? "高分飘过" : (grade<60) ? "真鸡儿菜,挂科了" : "及格万岁";
    std::cout<<level<<std::endl;

    return 0;
}

 

 

切记,由于三目运算符优先级比较低,通常括号全部括起来

#include <iostream>
#include <string>

int main()
{
    //错误,输出60,返回cout引用,用cout和50比较,出错
    //std::cout<< 60>50 ? "C++" : "完美" ;

    //可以运行,但是有错。输出0或者1,返回cout,用cout作为条件得到其中一个字符串字面值
    std::cout<<(60>50)? "钟爱C++" : "钟爱Basic" ;

    std::cout<<std::endl;

    //切记,由于三目运算符优先级比较低,通常括号全部括起来
    std::cout<<((60>50)?"钟爱C++":"钟爱Basic");
    return 0;
}

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM