0

こんにちは、このフォーラムにこの質問を投稿するのは 3 回目ですが、今まで誰もこの状況について教えてくれませんでした。

ここに重要なコードのみを貼り付け、できる限り説明しようとします...

方法:

  1. showMenu(in) - Choice(in) も呼び出すメニュー リストを表示します。
  2. choice(in) - -> getNumber(in) を介して in 入力を受け入れます
  3. getNumber(in) - 返された数値であり、正しいケースを選択するようになりました

ここでは、ケース 1: とケース 2: のみを扱います。

ケース 1:

  1. 文字列音部記号 = saisirClef(in) から割り当てられた戻り値
  2. saisirClef(で); ロジックを完了した後に文字列を返すメソッドです
  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;
        }
    }
4

1 に答える 1

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;
                    // ...
    }
于 2013-05-19T00:51:03.140 に答える