c++之重溫bool以及if和switch

bool篇

精華講解:

bool類型佔用一個字節,正常cout打印爲0和1;如何打印成true和false呢?
通過std::boolalpha可將流的輸出控制爲bool

例子:

int main()
{
    bool flag{};
    flag = 3 > 2 ? 10 : 0;
    std::cout << "flag=" << flag << std::endl;
    std::cout << std::boolalpha; //***********
    std::cout << "flag=" << flag << std::endl;
}

結果:
在這裏插入圖片描述

if之補充篇

這裏不妨列一段代碼(用於講解知識點的,沒有啥實際用途)

    int a{ 1 };
    int b{ 2 };
    if (a > b)
    {
        int temp = 3;
        a -= temp;
    }
    else
    {
        int temp = 3;
        a += temp;
    }

這裏我們看到明明temp只是在if內部臨時用一下,卻還要定義兩個變量。浪費可恥
再看下一段代碼

    int a{ 1 };
    int b{ 2 };
    int temp = 3;
    if (a > b)
    {
        a -= temp;
    }
    else
    {
        a += temp;
    }

雖然這樣解決了定義兩次的問題,但是這樣明顯增長了temp變量的生命週期,也是浪費。

所以c++17(VS2019才能用)關於if有了新的規定,用於解決上述的問題(看似很小的問題,嘿嘿)

    int a{ 1 };
    int b{ 2 };
    if (int temp{3};a > b)
    {
        a -= temp;
    }
    else
    {
        a += temp;
    }

switch之補充篇

switch和上面if篇也是類似,這裏給出代碼示範:

	//僅用於示範新的c++17規範,沒有實際用途!!
    int a{ 2 };
    switch (int temp{ 3 }; a)
    {
    case 1:
        temp += 1;
        a += temp;
        std::cout << "a=1" << (char)10;
        break;
    case 2:
        temp += 2;
        a += temp;
        std::cout << "a=2" << (char)10;
        break;
    default:
        break;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章