首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Switch语句

Switch语句
EN

Stack Overflow用户
提问于 2011-05-24 12:38:31
回答 4查看 3.1K关注 0票数 5

对于switch语句,是否可以在switch语句中更改switch的值,以便它可以跳转到不同的情况?例如:

代码语言:javascript
复制
int w = 0;
switch(w)
{
   case 1:
     doSomething();
     w = 3;
   case 2:
     doSomething();
     break;
   case 3:
     doSomething();
     break;
}

基本上我要问的是,如果我没有为case放置一个break语句,并且我在同一个case中更改了switch的值,那么代码会同时执行这两个case吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-24 12:41:13

是的,你可以改变switch中的值,但是它不会为新值执行case,直到你在改变了值的情况下中断。

在你的情况下,它在任何情况下都不会运行,因为没有0的情况。但是如果你改成w=1,那么它将在第一种情况下,然后在第二种情况下,因为你没有break;但它不会适用于第三种情况。

票数 3
EN

Stack Overflow用户

发布于 2011-05-24 12:46:55

不会,它不会改变,也不会执行新的case语句。

请记住,一旦找到与switch语句中的值对应的case语句的适当的匹配,就会执行该特定的case,并且一旦执行(如果在每个case之后提供break以防止失败到所有case),则控制返回到switch语句的末尾。

示例代码:

代码语言:javascript
复制
public  class A {
            public static void main(String [] args) {
                    int i=1;
                    switch(i) {
                            case 1 : 
                                    System.out.println("Case 1");
                                    i = 2;
                                    break;
                            case 2 : 
                                    System.out.println("Changed to Case 2");
                                    break;

                             default:
                                    System.out.println("Default");
                                    break;
                            }

                    System.out.println("Final value of i " + i);
            }
    }

输出:

代码语言:javascript
复制
Case 1
Final value of i 2  

注意:插入了正确的断点,请尝试调试。你会逐渐了解你自己,了解到底发生了什么。

票数 2
EN

Stack Overflow用户

发布于 2014-03-22 11:12:25

如果我们在每个case之后没有给出break,那么Java将从匹配case开始执行语句,并继续执行后续case的语句,直到找到break语句或遇到switch语句end。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6105740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档