• ベストアンサー

コマンドプロンプトでキーを押して入力した数値を代入させたいんですが

自分で勉強中の(かなりてこずってる)範囲の課題を出されてしまい困っています。 C言語のscanfのように実行してから数値を代入させてその判別を制御文で行うプログラムを作りたいのですが制御までは授業でやって理解していますが代入させる部分がよくわからないんで教えてください。 ヒントが出されたんですが BufferdReader br = new BufferdReader(new InputStreamReader(System.in)); String in = br.read.Line(); でできるということでした。 そこで自分なりに考えてみたのが判別するために (int) in; とか int x = (int)in; とかやってみてinを数値として扱おうとしたのですがエラーが出てしまいました。どこがおかしいのかよくわからなくて調べてみましたが別のファイルからの入力についての解説ページしか見つからなかったのでこちらで分かる方どうか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

class Q4061261A{ public static void main(String[] args){ java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); //スペルミスあり。 String in = null; int num = 0; try{ in = br.readLine(); //read.LineじゃなくreadLine }catch(java.io.IOException e){ System.out.println(e.toString()); System.exit(0); }finally{ } try{ num = Integer.parseInt(in); }catch(NumberFormatException e){ System.out.println(e.toString()); System.exit(0); }finally{ } if (num == 5){ System.out.println("5です。"); }else{ System.out.println("5ではありません"); } } }

gokigenn
質問者

お礼

できました。ありがとうございます。

その他の回答 (1)

  • OKapple
  • ベストアンサー率56% (17/30)
回答No.2

データの型を変換することを「キャスト」と呼びます。 (int)のような文法でキャストできるのは、javaの基本型同士の場合または継承関係にあるオブジェクトの場合だけです。 ※基本形同士でキャストする場合は、データの精度に注意する必要もあります。 実際のソースの例は、No.1の方のものを参照してください。 キャスト自体は > num = Integer.parseInt(in); の1行ですが、parseIntは例外をthrowすることがあるので、例外処理も必要になります。 余談ですが。 このようなキャスト処理は、javaの習熟の上で避けて通れない知識のひとつです。 オブジェクト・クラスと継承の考え方、データ型についてなど、どうぞ頑張って勉強してください。

gokigenn
質問者

お礼

専門家の方ですか。私もSEやプログラマを目指しているものです。 とてもありがたいお言葉ありがとうございます。解説も参考にさせていただき理解できました。ありがとうございます。

関連するQ&A