- ベストアンサー
コンパイルできるが、数字入力後に進まない問題の解決方法は?
- Javaのソースコードをコンパイルする際に、正常にコンパイルできるが、数字入力後に進まない問題が発生します。
- 解決策としては、プログラムの実行時に数字の入力待ちが発生していることが原因であるため、入力待ちを解除する必要があります。
- 具体的には、入力待ちを解除するためにBufferedReaderクラスのreadLineメソッドで入力を受け付ける箇所を修正することで問題が解決します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一部順番が違うだけです。 import java.io.*; public class ex32 { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("int x> "); int x = (new Integer(in.readLine())).intValue(); System.out.print("int y> "); int y = (new Integer(in.readLine())).intValue(); while(x != y) { if(x > y) { x = x - y; } else{ y = y - x; } } System.out.println("GCM = " + x); } }
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
>double x >の出力 いや、それはどう考えても出ないだろう・・・ >そこで数字を入力してエンターを押すと、そこから進みません。 再現しません。正常動作しています。 (まぁ数字入力が必要なメッセージを出力して欲しいけど) =========================== C:\Data\Administrator\Oshiete_Goo\Q2998129>javac ex32.java C:\Data\Administrator\Oshiete_Goo\Q2998129>java ex32 8 12 int x> int y> int x> int y> GCM = 4 C:\Data\Administrator\Oshiete_Goo\Q2998129>java ex32 100 125 int x> int y> int x> int y> int x> int y> int x> int y> GCM = 25 ========== ちなみに数字を入力しないとき Exception in thread "main" java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.<init>(Unknown Source) at ex32.main(ex32.java:6) という例外が発生する(正常動作)