2

OK、私は Java を初めて使用するので、問題が発生しています。switch ステートメントの特定のセクションの実行が終了したときに、プログラムをメインから最初からやり直そうとしています。これは私のコードです:

import java.util.Scanner;
public class Test{
public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    int ans;
    System.out.println("Choose an option");
    System.out.print("1: To see members\n2: To add member\n3: To delete a member\n Option: ");
    ans = input.nextInt();

    switch(ans){
        case 1:
        //code to see members
        break;
        case 2:
        //code to add members
        break;
        case 3:
        //code to delete members
        break;
        default:
        System.out.println("Invalid option");
        }
     }
 }

ケース 1 の実行が終了すると、プログラムは終了します。ユーザーが意図的に終了するまで、メインに制御を戻すにはどうすればよいですか?

4

5 に答える 5

8

コードを main から新しい関数に抽出し、その関数を呼び出して制御を渡し、最初からやり直します。

于 2012-08-02T09:21:49.373 に答える
1

変数を導入します:

boolean run = true;

コードをループに入れます。

while(run){
    //your code
}

ユーザーが終了することを選択した場合は、run tofalseを設定するだけで、プログラムが終了します。

于 2012-08-02T09:25:04.690 に答える
1
boolean exitLoop = false;
while (!exitLoop) { 
    // insert code here
}
于 2012-08-02T09:22:51.907 に答える
0

@ipavlicによって与えられた答えに従い、@ Dahakaのような他の人が言ったように、それをループに入れることで、再帰的にmain(非推奨)と呼ぶことができます。

于 2012-08-02T16:45:07.430 に答える
0

これを試してみてください....

import java.util.Scanner;
public class Test{
public static void main(String[] args){
boolean run = true;
while(run){
    Scanner input = new Scanner(System.in);
    int ans;
    System.out.println("Choose an option");
    System.out.print("1: To see members\n2: To add member\n3: To delete a member\n4: To end the program\n Option: ");
    ans = input.nextInt();

    switch(ans){
        case 1:
        //code to see members
        break;
        case 2:
        //code to add members
        break;
        case 3:
        //code to delete members
        break;
        case 4:
        //it will end the program
        run=false;
        break;
        default:
        System.out.println("Invalid option");
        }
       }
     }
 }
于 2012-08-02T10:22:48.207 に答える