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

解決済みの質問

Javaの例外(tryとcatch)について

Java初心者の大学生です。授業で、

「以下のプログラミングに書き足しをして、例外が3度繰り返されたら
プログラムを終了するようにせよ。」
という課題が出ました。

以下のプログラムは…

package kadai;

import java.io.*;

public class kadai {

public static void main(String[] args)throws IOException {
String ss;
int idt,i;

BufferedReader kbd =
new BufferedReader(new InputStreamReader(System.in));

for(;;){
System.out.print("整数入力: " );
ss= kbd.readLine();

try{
idt= Integer.parseInt(ss);        System.out.println("数値= " + idt);
}

catch(NumberFormatException e){   System.out.println("入力誤りです" );
continue;
}
break;
}
}

}

というものです。(見づらくて申し訳ありません!)
私はcatchの部分をfor文で3度繰り返しさせて、終了できるようにしようと思い、変数iを定義して、

for(i=0;i<3;i++){
catch(NumberFormatException e){
System.out.println("入力誤りです" );
}
}

という文を打ち込みました。しかし、エラーばかり出てきてしまい、
一向に解決できません。どこにどうやってfor文を打ち込めば解決
できるでしょうか?また、何故私が考えた文ではエラーが出てしまう
のでしょうか?

基礎的な質問で申し訳ありませんが、ご指導をお願い致します。
もし参考になりそうなHP等がありましたら、そちらも教えて
いただきたいです。

投稿日時 - 2009-10-25 02:02:06

QNo.5394261

困ってます

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

>という文を打ち込みました
try{}catch{}は組にして使わなければいけません。

以下のします。

for(3回){
try{
  //例外が出る処理
}
catch(){
カウンタ++;
if(カウンタ==3回){
アプリ終了
}else{
・・3回じゃない場合は何もしない。
  }
}
}

投稿日時 - 2009-10-25 02:08:10

お礼

 遅くなってしまい、申し訳ありませんでした。
ご回答有難うございました。教えていただいたように
書いてみたところ、無事解決することができました!

 本当に助かりました。有難うございました。
今後は基礎的な質問をすることがないよう、
きちんと勉強していきたいと思います。

投稿日時 - 2009-10-26 22:50:32

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

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

回答(2)

ANo.2

数字どうか判断して、数字でなければエラー
のような処理なら、tyr-catchではなく
正規表現を使うことを勧めます。

投稿日時 - 2009-10-25 13:14:21

お礼

 早々の回答、有難うございます。
今回の課題は、「既に作ったtry-catchの文に新たな文を足して作成する」
というもので、全体の文を変えることができないのです。
 
 しかし、私も初心者ながらtyr-catch文よりも良い書き方があると思います。今後の学習の参考にさせだき、
課題とは関係なしによりよいものを作ってみようと思います。

投稿日時 - 2009-10-26 14:39:49

あなたにオススメの質問