多層三目運算符


對於多層三目運算符,從右往左看

#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