【问题标题】:Passing a value from one case to another in switch statement在 switch 语句中将值从一种情况传递到另一种情况
【发布时间】:2013-05-13 08:51:59
【问题描述】:

所以这里是一个示例代码:

import java.util.Scanner;

public class Test {

public static void main(String[] args) {
    System.out.println("Please type in a number");
    Scanner in = new Scanner(System.in);
    switch (in.nextInt()){
        case 1:
            save(in);
            break;
        case 2:
            System.out.println(value);
            break;
        default:
            System.out.println("Default case");
            break;
    }               
    in.close();
}

public static String save(Scanner in){
System.out.println("Type in a word");
String value = in.next();
return value;
}
}

在这种特殊情况下,我在这里要做的就是访问存储在案例 1 中的 value

【问题讨论】:

  • 显示你的代码。
  • 请清楚地写下你必须做的事情——这对解决你的问题大有帮助。听上去,switch 语句与您的问题特别相关。

标签: java if-statement switch-statement return-value scope


【解决方案1】:

switch 在包括 java 在内的所有类 c 语言中都非常通用。它根据switch变量的值跳转到label,然后继续直到出现break语句。

我不确定您在冗长的解释中是什么意思,但在以下示例中:

switch(op) {
    case ONE:
        foo();
    case TWO:
        bar();
        break;
    case THREE:
        aaa();
        qqq();
        break;
}

op == ONE第一个方法foo()会被调用,然后流程会到达TWO的block,因为ONE中没有写break语句,所以会调用bar()。但是,break 语句会将流程跳转到 switch 之后出现的代码。

这是一个简短的解释。有关更多详细信息,请查找一本好书或教程并阅读有关 switch 语句的章节。

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多