java - 访问不同情况下的返回值

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

嗨,这是我第三次在这个论坛上发布这个问题,到目前为止还没有人能够启发我关于这种情况。

我只在这里粘贴了重要的代码,并将尽力解释......

方法:

  1. showMenu(in) - 显示菜单列表,也调用 choice(in)
  2. choice(in) - 通过 -> getNumber(in) 接受 in 输入
  3. getNumber(in) - 是返回的数字,现在选择正确的大小写
<小时/>

现在我只处理情况 1:和情况 2:

案例1:

  1. 字符串谱号 = saisirClef(in) 分配的返回值
  2. saisirClef(in);是完成逻辑后返回字符串的方法
  3. 需要 showMenu(in),这样我现在可以选择不同的情况

案例2: 很简单,我试图在情况 1 中完成后访问字符串; 如果不是,那么我应该经历案例 1

这可以做到吗? 我觉得每次它通过中断时,所有变量都会消失,这正常吗?

我该怎么做?

public static void choice(Scanner in){

    switch(getNumber(in)){
        case 1:
            String clef = saisirClef(in);
            showMenu(in);
            break;
        case 2:
            if(clef.isEmpty()){
                System.out.println("Erreur : Aucune clef n’a été saisie.");
                saisirClef(in);
            }
            else{
                afficherClef(clef);
            }
            break;
        case 3:
            chiffrerFichier();
            break;
        case 4:
            dechiffrerFichier();
            break;
        case 5:
            quitApplication();
            break;
        default:
            System.out.println("Default");
            break;
        }
    }

最佳答案

试试这个:

private static String clef = null;

public static void choice(Scanner in){

    switch(getNumber(in)){
        case 1:
            clef = saisirClef(in);
            showMenu(in);
            break;
        case 2:
            if(clef == null || clef.isEmpty()){
                System.out.println("Erreur : Aucune clef n’a été saisie.");
                clef = saisirClef(in);
            }
            else{
                afficherClef(clef);
            }
            break;
                    // ...
    }

关于java - 访问不同情况下的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630416/

相关文章:

java - 有没有办法从多图中的值中获取所有键?

java - Java 中的 if-else 语句

java - 具有多重比较的更简洁的 if 语句

java - 基本的 java I/O 文本替换,没有得到预期的输出

java - assertEquals(obj,obj) 返回失败的测试

java - android通知适用于循环中的一个对象

c - 为什么整数溢出在 if 语句条件内部的工作方式不同?

c++ - 如何在 switch 语句中使用随机生成的数字?

c# - 为什么我需要使用 break?

C++ |一个数组,switch 语句?需要一些指导