标签: switch-statement

switch case语句错误:case表达式必须是常量表达式

我的switch-case语句昨天运行得很好.但是当我今天早些时候运行代码时,eclipse给了我一个错误,用红色突出显示case语句并说:case表达式必须是常量表达式,它是常量我不知道发生了什么.这是我的代码如下:

public void onClick(View src)
    {
        switch(src.getId()) {
        case R.id.playbtn:
            checkwificonnection();
            break;

        case R.id.stopbtn:
            Log.d(TAG, "onClick: stopping srvice");
            Playbutton.setImageResource(R.drawable.playbtn1);
            Playbutton.setVisibility(0); //visible
            Stopbutton.setVisibility(4); //invisible
            stopService(new Intent(RakistaRadio.this,myservice.class));
            clearstatusbar();
            timer.cancel();
            Title.setText(" ");
            Artist.setText(" ");
            break;

        case R.id.btnmenu:
            openOptionsMenu();
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

所有R.id.int都用红色加下划线.

java android switch-statement

124
推荐指数
7
解决办法
11万
查看次数

在Go中,break语句是否会从switch/select中断?

我知道switch/ selectcase在每个案例后自动中断.我想知道,在以下代码中:

for {
    switch sometest() {
    case 0:
        dosomething()
    case 1:
        break
    default:
        dosomethingelse()
    }
}
Run Code Online (Sandbox Code Playgroud)

是否break声明退出for循环或只是switch块?

select break go switch-statement

122
推荐指数
5
解决办法
7万
查看次数

如何在switch语句中添加"或"?

这就是我想要做的:

switch(myvar)
{
    case: 2 or 5:
    ...
    break;

    case: 7 or 12:
    ...
    break;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试了"case:2 || 5",但它没有用.

目的是不为不同的值编写相同的代码.

c# switch-statement

119
推荐指数
7
解决办法
11万
查看次数

Java中if/else与switch语句的相对性能差异是什么?

担心我的网络应用程序的性能,我想知道哪个"if/else"或switch语句在性能方面更好?

java performance if-statement switch-statement

118
推荐指数
7
解决办法
10万
查看次数

C#switch语句中的变量声明

为什么在C#switch语句中,对于在多种情况下使用的变量,您只在第一种情况下声明它?

例如,以下引发错误"已在此范围中定义名为'variable'的局部变量".

switch (Type)
{
    case Type.A:
            string variable = "x";
                break;
    case Type.B:
            string variable = "y";
                break;
}
Run Code Online (Sandbox Code Playgroud)

但是,根据逻辑,如果类型为,则不应该触发初始声明Type.B.switch语句中的所有变量是否都存在于单个作用域中,是否在处理任何逻辑之前创建/分配它们?

c# switch-statement

117
推荐指数
4
解决办法
5万
查看次数

为什么String switch语句不支持null case?

我只是想知道为什么Java 7 switch语句不支持一个null案例而是抛出NullPointerException?请参阅下面的注释行(示例摘自Java Tutorials文章switch):

{
    String month = null;
    switch (month) {
        case "january":
            monthNumber = 1;
            break;
        case "february":
            monthNumber = 2;
            break;
        case "march":
            monthNumber = 3;
            break;
        //case null:
        default: 
            monthNumber = 0;
            break;
    }

    return monthNumber;
}
Run Code Online (Sandbox Code Playgroud)

这样可以避免if在每次switch使用之前进行空检查的条件.

java language-design switch-statement

115
推荐指数
5
解决办法
4万
查看次数

在switch语句中声明变量

我看到了这个问题的一些答案,我明白了 - 你不能在一个内部声明和分配变量switch.但我想知道以下是否正确抛出错误说

错误:'int'之前的预期表达式

码:

switch (i) {
    case 0:
        int j = 1;
        break;
}
Run Code Online (Sandbox Code Playgroud)

为什么NSLog()在它之前拨打电话会导致没有错误?

switch (i) {
    case 0:
        NSLog(@"wtf");
        int j = 1;
        break;
}
Run Code Online (Sandbox Code Playgroud)

c variables declaration objective-c switch-statement

114
推荐指数
2
解决办法
3万
查看次数

如何缩短开关案例块将数字转换为月份名称?

有没有办法在更少的行上写这个,但仍然容易阅读?

var month = '';

switch(mm) {
    case '1':
        month = 'January';
        break;
    case '2':
        month = 'February';
        break;
    case '3':
        month = 'March';
        break;
    case '4':
        month = 'April';
        break;
    case '5':
        month = 'May';
        break;
    case '6':
        month = 'June';
        break;
    case '7':
        month = 'July';
        break;
    case '8':
        month = 'August';
        break;
    case '9':
        month = 'September';
        break;
    case '10':
        month = 'October';
        break;
    case '11':
        month = 'November';
        break;
    case '12':
        month = 'December';
        break;
}
Run Code Online (Sandbox Code Playgroud)

javascript date date-format switch-statement

110
推荐指数
11
解决办法
7616
查看次数

Switch Statement Fallthrough ...是否允许?

只要我记得我已经避免使用switch语句.实际上,我不记得它曾经进入我的意识作为一种可能的做事方式,因为它早在我的头脑中钻了它只不过是转换语句中的一个错误.然而,今天我遇到了一些在设计中使用它的代码,这让我立刻想知道社区中的每个人都认为有关switch语句的漏洞.

这是编程语言应该明确不允许的东西(比如C#,但它提供了一种解决方法),还是任何语言的功能都足以留给程序员手中?

编辑: 我没有具体到达我的意思.我经常使用这种类型:

    switch(m_loadAnimSubCt){
        case 0: 
        case 1: 
            // Do something
            break;
        case 2:
        case 3:
        case 4:
            // Do something
            break;
   }
Run Code Online (Sandbox Code Playgroud)

但是,我很担心这样的事情.

   switch(m_loadAnimSubCt){
        case 0: 
        case 1: 
            // Do something but fall through to the other cases 
            // after doing it.
        case 2:
        case 3:
        case 4:
            // Do something else.
            break;
   }
Run Code Online (Sandbox Code Playgroud)

这种方式只要大小写为0,1就会在switch语句中执行所有操作.我已经通过设计看到了这一点,我只是不知道我是否同意以这种方式使用switch语句.我认为第一个代码示例非常有用且安全.第二个似乎有点危险.

coding-style switch-statement

109
推荐指数
9
解决办法
10万
查看次数

如何从交换机内部打破循环?

我正在写一些看起来像这样的代码:

while(true) {
    switch(msg->state) {
    case MSGTYPE: // ... 
        break;
    // ... more stuff ...
    case DONE:
        break; // **HERE, I want to break out of the loop itself**
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有直接的方法呢?

我知道我可以使用一个标志,并通过在切换后放置一个条件中断来从循环中断.我只是想知道C++是否已经有了一些构造.

c++ syntax loops break switch-statement

108
推荐指数
9
解决办法
9万
查看次数