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