No.5ベストアンサー
- 回答日時:
そのものズバリ。
宿題じゃなければ良いけど(笑import java.io.* ;
class Test {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ;
while(true) {
System.out.print("1以上の整数を入力:") ;
System.out.flush() ;
String s = br.readLine() ;
try {
int i = Integer.parseInt(s) ;
if(i>0) {
int answer = 1 ;
for(int j=1 ; j<=i ; j++) {
answer*=j ;
}
System.out.println(i+"の階乗は"+answer) ;
continue ;
}
else {
System.out.println("不正な入力値です") ;
}
}
catch(NumberFormatException ne) {
if("exit".equals(s)) {
System.exit(0) ;
}
else {
System.out.println("不正な入力値です") ;
}
}
}
}
catch(IOException ie) {
ie.printStackTrace() ;
System.exit(0) ;
}
}
}
そのものずばりなんてすごくありがたいです。
何日もエラーとの格闘だったもので。半ば諦めていました。とても勉強になります。
長文を書いていただいてすみません。ありがとうございました。
No.4
- 回答日時:
皆さんの意見をまとめるとこんな感じですか?
//sample
public class CheckNumber{
static public void main(String[] arg){
int i = 0;
//引数のチェック
if(arg.length==0){
System.out.println("エラー: 引数を入力してください");
return;
}
//exitのチェック
if("exit".equals(arg[0]))return;
try{
i=Integer.parseInt(arg[0]);
}catch(NumberFormatException nfe){
System.out.println("エラー: 数値を入力してください");
return;
}
//数値のチェック
if(i<1){
System.out.println("エラー: 1以上の数値を入力してください");
return;
}
}
// ここに階乗計算処理
}
exitの評価は
arg[0].equals("exit")
とはしないほうがよいと思います。
この場合は問題ないとは思いますが、変数にnullが入る場合もあるので、普段から定数を頭に持ってくるほうがいいと思います。
わざわざまとめてくださってありがとうございます。
組み立て方がよく分かりました。
arg[0].equals("exit")とはしないようにします。
No.3
- 回答日時:
逆にInteger.parseInt()の前にequals("exit")の判断をしてしまうという手もありますね。
おお、equals()なんてありましたね。
私って全然覚えてなくて駄目ですね。
いったい文字はどのようにして比較するんだぁ・・なんて考えていました。
ありがとうございました。
No.2
- 回答日時:
>書き忘れてましたが、NumberFormatException になったら、「エラー 値は1以上の数字ではありません」と表示するようにしなければならないんですよ…。
それならcatchしたあとでifで条件分岐してやれば
できると思いますがいかがでしょう。
ちなみにAPIを見るのはプログラムを組むときの
基本ですのでお忘れなく。
(すでにあるものを自分で実装してしまうというのもよくある話です)
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
なるほど、catchした後にifとは気が付きませんでした。
ずっと、数値変換する前にif・・とかで考えていたものですから。
二度にわたるご回答ありがとうございました。
No.1
- 回答日時:
Integer.parseInt()を使ってますよね。
その場合、数字に変換できない場合NumberFormatException を
投げる仕様になっています。
Integer.parseInt()のあたりをtryでくくり
NumberFormatException をcatchして
終了処理を記述してください。
(java.lang.String)↓
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
回答ありがとうございます。
Integer.parseInt()を使ってます。なるほど、そこをtryをくくるんですね。
でも書き忘れてましたが、NumberFormatException になったら、「エラー 値は1以上の数字ではありません」と表示するようにしなければならないんですよ…。すみません。
教えていただいたHP、参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPやサーブレットでSystem.out...
-
C言語のポインターに関する警告
-
構文解析中にファイルの終わり...
-
JAVAのDouble型の小数点以下の...
-
JAVA 文字色変更
-
改行の判定方法
-
java 始めたばかりです
-
EclipseでJava
-
Javaでカレントディレクトリを...
-
エクセルマクロ文で、赤文字セ...
-
Java 入力した整数値の合計を、...
-
Path型をString型へ変換する(Java)
-
System.err. printlnとSystem.o...
-
カタカナの小文字を大文字に変...
-
論理演算子”||”またはの入力方法
-
実数からの小数部の取得
-
flush()とclose()について
-
Visual Basic でのコードをASCI...
-
int型のゼロ埋め
-
画面のリサイズについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
[JAVA]try 内の変数を外で!?
-
EclipseでJava
-
JAVAのエラーの意味が分かりま...
-
文字列の引き算
-
JAVA 文字色変更
-
改行の判定方法
-
エクセルマクロ文で、赤文字セ...
-
Javaでカレントディレクトリを...
-
JAVAのDouble型の小数点以下の...
-
DOMで要素の値がNULL
-
ファイル名に変数を使う(Java)
-
IPアドレスから組織やプロバイ...
-
Javaのプログラムがどうしても...
-
java int integer
-
java シンボルが見つかりません...
-
javaで判別式のプログラミング...
-
Javaプログラムについて質問で...
-
構文解析中にファイルの終わり...
おすすめ情報