📜  在switch case c ++中初始化变量(1)

📅  最后修改于: 2023-12-03 14:51:22.284000             🧑  作者: Mango

在switch case C++中初始化变量

在C++中,我们可以在switch case语句中使用变量。但是,当我们在一个case中声明并初始化变量时,它只在该case块中有效。在其他case块中访问该变量将导致编译器错误。因此,我们必须在进入第一个case之前声明并初始化变量。有两种方法可以实现这一点。

方法一:大括号

使用大括号可以创建一个块作用域,从而允许在该块中声明并初始化变量。例如:

switch (i) {
    case 1: {
        int j = 42;
        // do something with j
        break;
    }
    case 2: {
        int j = 84; // compiler error! j is already defined in another block
        // do something else
        break;
    }
}

在这个例子中,我们使用了大括号来创建一个块作用域,在每个case块内部声明变量j。在第一个case中声明的j只在该块中有效,不会影响第二个case中的j。

方法二:默认初始化

我们可以在switch语句开始之前定义变量,并使用默认初始化。例如:

int j = 0;
switch (i) {
    case 1:
        j = 42;
        // do something with j
        break;
    case 2:
        j = 84;
        // do something else with j
        break;
}

在这个例子中,我们在switch语句之前定义并初始化了变量j。因为j的作用域跨越了整个switch语句,我们可以在所有的case中使用它。在每个case中,我们可以更改j的值。

无论哪种方法,都可以让我们在switch case语句中初始化变量。选择哪种方法取决于您的个人喜好和程序的要求。