2016-03-31 21 views
0

javaにはどんな方法があるので、コード内で前後に進めることができますか? ユーザーがさまざまなオプションの間で決めることができるコードを作成したい、ラベルを使用することができますか、スイッチを使用する必要がありますか?Javaタグとラベル(ループの内側以外)

は、私がこのような何かをコーディングしたい:私はスイッチを使用せずにJavaの上でこれを行うことができるように

public static void main(String[]args){ 

START: 
    System.out.println("What do you whish to do?"); 
    System.out.println("X"); 
    System.out.println("Y"); 
    System.out.println("Z"); 

     if(kbd.nextLine().equals("X")){goto x;} 
     if(kbd.nextLine().equals("Y")){goto y;} 
     if(kbd.nextLine().equals("Z")){goto z;} 

X: //CODE FOR ACTION X// 
goto START; 
Y: //CODE FOR ACTION Y// 
goto START; 
Z: //CODE FOR ACTION Z// 
goto START; 
} 

は、それがどのような方法はありますか?

+5

** ** 'goto'を作成しようとしないでください。それは理由のために未実装* **予約語**です。投稿した内容に基づいて、***ループ***を使用します。 –

+0

あなたの問題を解決する方法はほとんどありませんが、実際に達成したいことに依存しています。ループやメソッドの組み合わせを使うこともできますし、コードを 'if'ブロックに直接置くこともできます。 – Pshemo

+0

異なる方法を使用してください。 –

答えて

0

あなたのコードはとにかく動作しません。ユーザーが "Y"を入力した場合、最初のifはGOTOを実行せず、プログラムは次の行の入力を待機します。

それはむしろ、この(あなたがいた場合、またはスイッチのいずれかを使用することができます)のようなものでなければなりません:

String exitCode = "q"; 
String ans = ""; 
while(!ans.equals(exitCode) { 
    System.out.println("What do you wish to do?"); 
    System.out.println("X"); 
    System.out.println("Y"); 
    System.out.println("Z"); 
    String ans = kbd.nextLine(); 
    if (ans.equals("X") { 
    // code for X action 
    } else if (ans.equals("Y") { 
     // code for Y action 
    } else if (...) { 
    // etc 
    } 
} 
+0

ありがとう、私はコードをもっときれいにするために使用したかったが、私は大まかなやり方をしなければならない –

関連する問題