关于 if 语句 C++ 17 引入了一种新的语法。这种语法的一般形式如下所示:
if (initialization; conditaion) ...
在计算 condition 表达式(即 if 语句的布尔表达式)之前,会先执行 initialization (初始化语句)。 这种初始化语句主要用于声明 if 语句的局部变量。
示例语句:
if (auto lower{ static_cast<char>(std::tolower(input)) }; lower >= 'a' && lower <= 'z'){
std::cout << "You've entered the letter' " << lower << '\'' << std::endl;
}
在初始化语句中声明的变量可用在 if 语句的条件表达式中,以及 if 的语句或语句块中。对于 if-else 语句,还可以用在 else 的语句或语句块中。但是对于 if 或 if-else 语句之后的代码来说, 这些变量好像从来没有存在过。