電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

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ではありません");
}
}

}
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/31 01:06

データの型を変換することを「キャスト」と呼びます。


(int)のような文法でキャストできるのは、javaの基本型同士の場合または継承関係にあるオブジェクトの場合だけです。
※基本形同士でキャストする場合は、データの精度に注意する必要もあります。

実際のソースの例は、No.1の方のものを参照してください。
キャスト自体は
> num = Integer.parseInt(in);
の1行ですが、parseIntは例外をthrowすることがあるので、例外処理も必要になります。

余談ですが。
このようなキャスト処理は、javaの習熟の上で避けて通れない知識のひとつです。
オブジェクト・クラスと継承の考え方、データ型についてなど、どうぞ頑張って勉強してください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/31 01:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!