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