在案例陈述中使用{}。为什么?

麻将

什么是使用点{}在一个case声明?通常,无论一条case语句中有多少行,所有行都将执行。这仅仅是关于旧/新编译器的规则吗?

int a = 0;
switch (a) {
  case 0:{
    std::cout << "line1\n";
    std::cout << "line2\n";
    break;
  }
}

int a = 0;
switch (a) {
  case 0:
    std::cout << "line1\n";
    std::cout << "line2\n";
    break;
}

{}表示的一个新的块范围

考虑以下非常人为的示例:

switch (a)
{
    case 42:
        int x = GetSomeValue();
        return a * x;
    case 1337:
        int x = GetSomeOtherValue(); //ERROR
        return a * x;
}

您将收到编译器错误,因为x已在范围中定义。

将它们分为自己的子作用域将消除x在switch语句之外进行声明的需要

switch (a)
{
    case 42: {
        int x = GetSomeValue();
        return a * x; 
    }
    case 1337: {
        int x = GetSomeOtherValue(); //OK
        return a * x; 
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在案例陈述中使用数字范围

来自分类Dev

在案例陈述中使用多个条件

来自分类Dev

MySQL在案例陈述中使用DESC

来自分类Dev

在案例陈述中使用数字范围

来自分类Dev

在案例陈述中使用xargs

来自分类Dev

为什么不使用交换案例陈述?

来自分类Dev

Oracle在案例陈述和插入中使用引号的差异

来自分类Dev

如何在案例陈述中使用计数

来自分类Dev

在案例陈述中使用正则表达式匹配数字

来自分类Dev

我该如何在案例陈述中使用完全匹配的关键字作为条件?

来自分类Dev

未定义类型的案例陈述?还是为什么约会?

来自分类Dev

为什么此案例陈述不起作用?

来自分类Dev

在案例结构中使用Like

来自分类Dev

在案例结构中使用Like

来自分类Dev

SQL在案例中使用DISTINCT

来自分类Dev

haskell在案例陈述中的部分应用

来自分类Dev

存在案例陈述会降低性能

来自分类Dev

从案例类外部查询时,为什么getClass在案例类构造函数参数上返回不同的值?

来自分类Dev

为什么在接口案例1抛出编译时错误,但在案例2个编译成功

来自分类Dev

在分组依据中使用案例陈述

来自分类Dev

在Java案例陈述中使用变量

来自分类Dev

我可以在案例模式中使用强制转换吗?

来自分类Dev

在案例函数中使用位置函数-PostgreSQL

来自分类Dev

在案例构建中使用WITH和子集

来自分类Dev

bash:在案例陈述中,转到其他案例

来自分类Dev

bash:在案例陈述中,转到其他案例

来自分类Dev

为什么在Haskell案例陈述中默认的全部捕获不是强制性的?

来自分类Dev

为什么我的Switch陈述式案例无法在完全匹配的字符串上触发?

来自分类Dev

为什么这些重复的案例?

Related 相关文章

热门标签

归档