2012-01-08 12 views
0

文字列の暗号化/復号化のプログラムを実行しようとしているので、入力した文字列で何をするかを選択できるようにユーザーのメニューを作成する必要があります。ユーザが1を入力すると、文字列を暗号化することができ、ユーザが2を選択すると、文字列を復号化することができる。しかし、1を入力すると、daプログラムはコンソールで終了し、終了メニューJavaアプリケーションC:¥Program Files¥Java¥jre7¥bin¥javaw.exeメッセージを表示します。プログラムが動作して終了する

誰か手掛かりがありますか?あなたが欲しい

strTarget = in.nextLine(); 

import java.util.Scanner; 

public class Menu { 

public static void main(String[] args) { 

    String strTarget; 

    Scanner in = new Scanner(System.in); 

    System.out 
      .println("Dobredojdovte vo programata za enkripcija i dekripcija na stringovi --"); 
    System.out 
      .println("Za da enkriptirate string, stisnete 1; Za da dekriptirate string, stisnete 2"); 
    int choice = in.nextInt(); 
    if (choice == 1) { 
     System.out.println("Vnesete go stringot kojsto sakate da go enkriptirate -- Dozvoleni se samo golemi bukvi i cifri (mali bukvi ne se dozvoleni)"); 
     strTarget = in.nextLine(); 
     System.out.println(strTarget); 
    } 
    if (choice == 2) { 
     System.out.println("Vnesete go stringot kojsto sakate da go dekriptirate --"); 
    } 

} 

}

+1

終了したらどういう意味ですか?それは単に終了する?あなたはそれが終わったと確信していますか?あるいは 'in.nextLine()'で入力を待っていますか?また、完全な出力を入力して入力すると役立ちます。 –

+0

暗号化のためのプログラムを作成しようとしていますが、疑問は暗号化に関するものではありません。 –

答えて

0

代わりの

strTarget = in.next(); 

は私が出力され、声明(ない私の言語)わからないんだけど、この入力された次の単語を返します。あなたは全体のラインを希望している場合は、あなたがいたとして、その後、維持し、代わりに:

int choice = in.nextInt(); 

あなたが欲しい:

int choice = in.nextInt(); 
in.nextLine(); 
+0

ありがとうございます – speci

0

それは、in.nextInt()は数値を読み込む何も価値がありませんその行全体で、in.nextLine()はその行の残りの部分を読み込みます。ユーザーが数値を入力し、残りの行を無視したい場合は、その後にin.nextLine()を呼び出す必要があります。

0

もちろん終了しますが、入力を求め続ける必要があるプログラムではありません。あなたはループの中にコードを書く必要があります!

関連する問題