2017-08-30 7 views
-2

私はユーザーが2つの別々のキューを入力する方法を理解しようとしています。具体的には、1つのキューの入力を終了し、次のキューのエントリの入力を開始できるような重要なイベントがあることを(成功しなかった)試みました。ありがとうございました。これは私の最初の記事です!Java:標準入力に2つのキューを取る方法は?

Scanner scanner = new Scanner (System.in); 
while (!StdIn.isEmpty()) 
    { 

      double one = StdIn.readDouble(); 
      a.enqueue(one); 

     if (scanner.nextInt() == 0) 
    { 

       double two = StdIn.readDouble(); 
       b.enqueue(two); 

      } 

(STDINは、標準のJavaライブラリではありません) "キーイベントを" と仮定すると、

+0

「StdIn」とは何ですか?どのような "キーイベント"をしたいですか? – Andreas

+0

'StdIn'、' a'、 'b'とは何ですか? – nullpointer

+0

StdInクラスは、標準入力から文字列と数値を読み込む静的メソッドを提供します。 aとbはすでに宣言されているキューです。キーイベントに関しては、私はちょうどキューの終わりを知らせる何かが必要です – Hamza

答えて

0

は、あなたがこのようにそれを行うだろう、ゼロ値である:

Scanner scanner = new Scanner (System.in); 
Queue<Double> a = new ArrayDeque<>(); 
Queue<Double> b = new ArrayDeque<>(); 
while (scanner.hasNextDouble()) { 
    double value = scanner.nextDouble(); 
    if (value == 0) 
     break; 
    a.add(value); 
} 
while (scanner.hasNextDouble()) { 
    b.add(scanner.nextDouble()); 
} 

あなたは適用することができますあなたが望むなら、2番目のループにもキーイベントチェック。

ダブル入力以外の入力では、両方のキューの入力処理が停止し、2番目のwhileループ以降のコードでも処理が続行されることに注意してください。

+0

ああこれは役に立ちます..関連する質問:私はキューのエントリを埋めるし、プログラムのオブジェクトによってキューを操作したい場合は、プログラム内で私がやる?私はメインの方法で試してみましたが、 "静的ではない変数です。これは静的なコンテキストから参照できません"ありがとう! – Hamza

+0

@ハムザあなたのコードを見ていない、私は言うことができない、それは別の質問です。新しい質問を作成し、関連するコードを含めてください。これを最初に読んでみるといいかもしれません:[最小限で完全で検証可能な例の作成方法](https://stackoverflow.com/help/mcve) – Andreas

関連する問題