在switch语句中将值从一个case传递到另一个case

时间:2013-05-18 07:13:25

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

所以这是一个示例代码:

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

1 个答案:

答案 0 :(得分:1)

包括java在内的所有类c语言中的

switch语句非常通用。它根据switch变量的值跳转到标签,然后继续,直到break语句出现。

我不确定你在长篇解释中的含义是什么,但是在下面的例子中:

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

op == ONE将调用第一个方法foo(),然后流程将到达TWO块,因为ONE中没有写入中断语句,因此{{1}将被调用。但是,break语句会将流程跳转到切换后出现的代码。

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