从不同的案例中访问返回的值

时间:2013-05-19 00:43:48

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

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

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

方法:

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

  4. 现在我只处理案例1:案例2:

    案例1:

    1. String clef =从saisirClef(in)
    2. 指定的返回值
    3. saisirClef(IN);是完成逻辑
    4. 后返回字符串的方法
    5. showMenu(in)是必需的,所以我现在可以选择不同的案例
    6. 案例2: 简单我在案例1中完成后尝试访问String; 如果不是那么我应该通过案例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;
              }
          }
      

1 个答案:

答案 0 :(得分:1)

试试这个:

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;
                    // ...
    }