こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2008-05-30 02:28:08

QNo.4061261

困ってます

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

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

}

投稿日時 - 2008-05-30 05:59:32

お礼

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

投稿日時 - 2008-05-31 01:06:01

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

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

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

投稿日時 - 2008-05-30 17:19:20

お礼

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

投稿日時 - 2008-05-31 01:08:04