2017-01-20 12 views
1

私は次の質問に答えようとしています。私のIDEでテストし、それがうまくコンパイルが、サイト上にある、それは次のようなエラーがスローされます。SPOJサイトでコンパイルエラー

runtime error (NZEC) edit ideone it 

間違ってやっている何かアドバイスしてください。入力から出力へ

Link to SPOJ Site

質問 書き換え少数。数字42で読み込んだ後、処理を中止します。入力時の数字はすべて1桁または2桁の整数です。ここで

回答

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 

     int i = 0; 

     while (i != 42){ 

      Scanner s = new Scanner(System.in); 
      i = s.nextInt(); 
      System.out.println(i); 
     } 
    } 
} 
+0

「Scanner s = new Scanner(System.in);」をループの前に移動してみてください。 –

+1

これらの種類のサイトは、一般的にスキャナをサポートしていませんが、入力を取得する方法を提供しています。フォーラムで検索してください。 – AxelH

+0

個人的なメモ:この質問は古くなっているようですが、この質問についてのフォーラムは英語以外の言語で氾濫しています。ここでは、これはランダムな咬合のようです(いくつかの良い答えは検証されていません) – AxelH

答えて

-1

はあなたのためにいくつかのヒントがあります:

  1. あなたは右whileループの前に、たとえば、一度だけScannerを初期化する必要があります。

  2. あなたのプログラムはとにかく間違っています。番号42が表示されたら、印刷しないでください。 while (there_is_still_something_to_read) {:あなたはこの問題を修正すると、あなたのプログラムは、あなたのループは、次のように動作するはず数42せずに数字の有限シーケンスに対して耐性があるかどう

  3. それはまだはるかに良いでしょう。現在、あなたのプログラムは無限ループに巻き込まれています。

+0

"-1"の作者がその理由を説明するといいですね。 – Robson