首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开关中类似的情况,但差别不大

开关中类似的情况,但差别不大
EN

Stack Overflow用户
提问于 2019-11-24 12:08:45
回答 3查看 162关注 0票数 3

我想执行一个切换案例,在这个案例的主体和另一个案例相似的情况下,我将这两个案例分开,编辑告诉我,这是一个与另一个相似的案例,并且可以选择与另一个案例合并。我做第一个案子的时候是:

代码语言:javascript
复制
...
case 3: {
   case 7:
      System.out.println("Print something: ");
   ...
}

但是,我希望在3的情况下打印一个不同于案例7的消息。

代码语言:javascript
复制
...
case 3: {
   System.out.println("Print something different");
   case 7:
      System.out.println("Print something: ");
   ...
}

但是,当案例3正在执行时,两个消息都会被打印出来,而当大小写是7时,只打印case 7的消息。当大小写为3时,有没有办法只打印第3条?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-24 12:30:20

如果希望这两种情况(3和7)执行公共逻辑,唯一的区别是打印输出,则可以添加一个条件:

代码语言:javascript
复制
case 3:
case 7: {
   System.out.println(v == 3 ? "something" : "something else");
   ... common code that should run for both 3 and 7 cases ...
}

其中v是开关语句变量。

票数 2
EN

Stack Overflow用户

发布于 2019-11-24 12:32:17

我希望3和7的正文是相同的,因此对3和7都执行,但是当情况为3时,只打印第一条消息,而不打印案例7的消息。

代码语言:javascript
复制
String stuff ="";

switch (test){
   case 7: stuff = "something Else.\n";  //flow down to 3
   case 3: stuff = "print something.\n" + stuff;  //prepend with print something.
           break;
}

System.out.print(stuff);

上面说..。这种编码方式并不是真正直观的编码器。你最好把这两个案子分开休息一下。

代码语言:javascript
复制
String stuff ="";

switch (test){
   case 7: stuff = "something Else.";   
           break;
   case 3: stuff = "print something.\nsomething Else.";   
           break;
}

System.out.println(stuff);
票数 1
EN

Stack Overflow用户

发布于 2019-11-24 12:13:22

在每个语句之后,添加一个中断。否则,它将同时执行这两个操作。

代码语言:javascript
复制
        case 3:
            System.out.println("Print something different");
        case 7:
            System.out.println("Print something: ");
            break;
   ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59017483

复制
相关文章

相似问题

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