2010-11-26 21 views
0

私はメニューとして動作するswitch文を持っていますが、これはユーザ入力を読み込もうとしています。現在私はvariable=in.next();を使用しており、これは動作します。しかし、それは1つの単語を読むだけで、ユーザーはもっと入力しなければならないかもしれないので、私はvariable=in.nextLine();を使って試しましたが、私がプログラムを実行するとメニューから自分の選択を選び、メニューに移動します。Java - nextLine(); switch文の中で

すべてのヘルプは、あなたのいずれかがユーザ入力から改行文字\nを取り除くか、それはあなたのswitch文でありますと仮定しなければならない

答えて

1

だけ使用します。

name=in.nextLine(); 

String choice = in.nextLine(); 

をこれは、コンストラクタで、かつrunAppの一番上にある必要があります。

そのようにして、バッファに新しい行を残すことはありません(たとえば、dpなどで使用されます)。

あなたは持っている必要があります。

dp=in.nextLine(); 

あなたの質問で説明したように。

+0

私はまだあなたの答えを誤解していない限り、私は非常に長い時間プログラミングされていないので、同じ問題を抱えています。 –

+0

@Ben、あなたのコードでテストしました。あなたが含まなかったメソッドへの呼び出しをコメントアウトしなければなりませんでした。現在のコードを投稿できますか(質問を編集してフォーマットするには101ボタンを使用できます)。 –

+0

エディタを正しく動作させることができません、あなたがそれを意味することを願っています。 私は'dp = in.nextLine();' を見ることができますが、それは私にエラーを与えるものです。 –

1

:)おかげでいただければ幸いです。あなたがnextLineを使用することにしましたので、かなり

()コンピュータへのユーザ入力は、この

f\n 

だから文字列をそれに応じて比較するようになります!

-1

スイッチセレクタは、整数、short、charまたはenumのみです。文字列をスイッチセレクタとして使用することはできません。

あなたが正しく理解している場合は、ユーザーが入力した単語を使用してフローを制御したいと考えています。

列挙言葉{ 開始、停止、ビープ音、 }

は今、ユーザーが単語のビープ音を入力:あなたは言葉の定義済みリストを持っている場合、私はあなたが列挙型を使用することをお勧めしたいです。あなたは言うことができます:

Words command = Words.valueOf(); 
/// 
switch (command) { 
    case start: /* start something */ break; 
    case stop: /* stop something */ break; 
    case beep: /* beep!!! */ break; 
    default: throw new IllegalArgumentException("Unknown command " + command); 
} 
+0

vicの答えに私のコメントを見てください。それはコンパイルされません。 –

0

私はJavaであまりにも不満で、私の質問をひどく入れていると思います。

私はユーザーに1単語しかかかりませんが、基本的にはすべてを取りたいと思います。nextLineを使用すると、読み物をスキップして選択肢を選択することに戻ります。

+0

Dropboxファイルへの簡単なリンクはどのようにして得ましたか? – javamonkey79

+0

エクスプローラ、ドロップボックス、パブリックリンクを右クリックしてファイルをコピーします。 問題が発生する可能性はありますか? :P –