※ ChatGPTを利用し、要約された質問です(原文:お力貸して頂ければ幸いです。
)
Java1.5で自作プログラムを作成していますが、System.inメソッドの使い方と文字の認識について質問です
このQ&Aのポイント
Java1.5で独学で勉強しており、自分なりにサイトを参考にしつつ、自分で自分に問題を出しては解いている最中です。
1~1000まで表示されるプログラムの作成で、System.inメソッドの使い方と文字の認識について質問があります。
質問内容は、System.inメソッドの仕様と文字の認識に関するものです。また、改良点も教えていただければと思っています。
お力貸して頂ければ幸いです。
Java1.5で独学で勉強しており、自分なりにサイトを参考にしつつ、
自分で自分に問題を出しては解いている最中です。
自分で作った問題にも関わらず、わからなくなってしまったのでご質問させて頂きたいと思います。
Q
1~1000まで表示されるプログラムの作成
改行はコマンドプロンプトから入力された数字分で改行させる(System.inの利用)
自分なりに出した回答は下記です。
import java.io.*;
class Kadai2{
public static void main (String args[]){
int i = 0;
int f = 0;
System.out.println("数字を入力してください");
System.out.println("1文字以上は読み込みません");
System.out.println("文字数を超えた場合は最初の文字のみ読み込みます");
System.out.println();
try{
i = System.in.read();
//System.out.println((char)i);
}catch(IOException e){}
for(f = 0; f <= 1000; f++){
if(f == i){
System.out.print(f);
System.out.println("");
}
else{
System.out.print(" " + f);
}
}
}
}
※実行しても自分の思うように動きません
不明点は2点あります。
1点目はSystem.inメソッドの仕様?的なもの
(apiを見ても理解出来ずじまいでした・・・。これは変数の代入先の型はINT型でないと使えないのでしょうか?)
2点目はSystem.inメソッドから入力した場合の、文字が数字で入力しても文字コードで
数字として認識されない点
(その為、if文の判定が意味ない状態)
質問が下手で申し訳ありませんが、お時間あるときに教えて頂ければと思います。
自分ではこのようにやってますが、もっと他にこのプログラムはこうした方がいいよという部分
ありましたら教えて頂ければ幸いです。
お礼
tom11さん ありがとうございます。 Scannerクラスと言うのを自分は存在すら知らなかったので 非常に勉強になりました。 int c = sc.nextInt(); ここはint型にキャストしてるって考えでいいのでしょうか?