当前位置: 首页 > 编程笔记 >

C ++ 17中带有初始化程序的其他语句和Switch语句

傅新
2023-03-14
本文向大家介绍C ++ 17中带有初始化程序的其他语句和Switch语句,包括了C ++ 17中带有初始化程序的其他语句和Switch语句的使用技巧和注意事项,需要的朋友参考一下

在许多情况下,我们需要验证函数返回的值,然后根据该值执行条件操作。所以我们的代码如下-

// Some method or function
return_type foo(Params)
// Call function with Params and
// store return in var1
auto var1 = foo(Params);
if (var1 == /* some value */) {
   //Perform Something
} else {
   //Perform Something else
}

只需在所有条件if-else块中遵循通用格式即可。首先,存在一个可选的初始语句来设置变量,然后是if-else块。所以一般的if-else块给出如下-

init-statement
if (condition) {
   // Perform or Do Something
} else {
   // Perform or Do Something else
}

在C ++ 17中,init语句被表示为或称为初始化器,我们可以按照以下方式将其直接保存在if-else块中

if (init-statement; condition) {
   // Perform Something
} else {
   // Perform Something else
}

条件变量的范围被限制或限制为当前的if-else块。这也允许我们在另一个条件块中重用相同的命名标识符。

if (auto var1 = foo(); condition) {
   ...
}
else{
   ...
}
// Another if-else block
if (auto var1 = bar(); condition) {
   ....
}
else {
....
}

在类似情况下,开关盒块已被修改或更新。现在,我们可以在开关括号内保留一个初始表达式。

在初始语句之后,我们需要指定要实现的变量以检查情况

switch (initial-statement; variable) {
   ....
   // cases
}

完整的程序

// Program to explain or demonstrate init if-else
// feature introduced in C++17
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
   // Fix or set up rand function to be implemented
   // later in program
   srand(time(NULL));
   // Before C++17
   int I = 2;
   if ( I % 2 == 0)
   cout << I << " is even number" << endl;
   // After C++17
   // if(init-statement; condition)
   if (int I = 4; I % 2 == 0 )
   cout<< I << " is even number" << endl;
   // Switch statement
   // switch(init;variable)
   switch (int I = rand() % 100; I) {
      default:
      cout<< "I = " << I << endl; break;
   }
}
 类似资料:
  • C# 中的 switch 语句有些类似于《 if else if 语句》,都可以根据表达式执行某个的语句块,其语法格式如下: switch(表达式){     case value1:     //表达式的值为 value1 时,要执行的代码         break;     case value2:     //表达式的值为 value2 时,要执行的代码         break;   

  • C++ 判断 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 语法 C++ 中 switch 语句的语法:switch(expression){ case constant-expression : statement(s); break; // 可选的 case constant-expressio

  • C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。例如,输入一个整数,输出该整数对应的星期几的英文表示: 运行结果: Input integer number:3↙ Wednesday 对于这种情况,实际开发中一般使用 switch 语句代替,请看下面的代码: 运行结果: Input integ

  • 很多时候 if 语句可以很好的满足我们对于分支控制的需求,但是当你要对于一系列有着相同表达式不同内容的东西分类的时应该怎么办?这正式今天要介绍的内容。 1. 语法 switch (表达式) { case 常量1: 语句1 break; case 常量2: 语句2 break; . . . defa

  • C++ 判断 您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。 C++ 中的 switch 语句允许至少 256 个嵌套层次。 语法 C++ 中 嵌套 switch 语句的语法: switch(ch1) { case 'A'

  • switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':