可以在Switch语句中进行类型声明吗?

时间:2011-07-15 11:16:07

标签: iphone ios4 switch-statement

我正在将XCode 4.0.2用于iOS4项目。

我有一个标准的“Switch”声明

switch (i) {
    case 0:
        int a = 0;
    break
    ...
}

这在int a = 0;。

上给出了一个错误“Expected expression”

如果我在类型声明之前使用像这样的简单语句,那么“Switch”工作正常是很奇怪的

switch (i) {
    case 0:
        b = 0;
        int a = 0;
    break
    ...
}  

在这种情况下,编译器不会给出错误(只有“未使用的变量a”警告)。

怎么可能?

谢谢。

4 个答案:

答案 0 :(得分:6)

尝试类似

的内容
switch (i) {
    case 0:
    {
        int a = 0;
    }
    break
    ...
}

答案 1 :(得分:1)

将case语句括在大括号中:

switch (i) {
    case 0: {
        int a = 0;
        break; 
    }

    ...
}

答案 2 :(得分:1)

您需要使用{ }打开一个新范围才能声明新变量:

switch (i) {
    case 0: {
        int a = 0;
        break;
    }
}

答案 3 :(得分:0)

您可以声明像

这样的变量
switch (i) {
    case 0:
        { //User brackets 
            int a = 0;
        }
    break
    ...
}