• ベストアンサー

Javaプログラムの間違いを見つけてください

下記のプログラムをマニュアル通りに入力したのですが、おそらくマニュアルにミスがあったのでしょう。どこが間違っているのか教えてください。よろしくお願いしますm_ _m class kadai1710 { public static void main (String args []) { System.out.println(args[0]); if(Integer.parselnt(args[0]) == 1) System.out.println("男性"); else System.out.println("女性"); } }

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

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

>if(Integer.parselnt(args[0]) == 1) parse「l」ntではなくてparseIntです。 Int形にキャストする、という意味です。 アイとエル(小文字)、1等は間違えやすいので気をつけてください。

yohta
質問者

お礼

回答どうもありがとうございます♪ マニュアルのミスではなく自分のミスでしたね、お恥ずかしい…。 ご指摘感謝です!

その他の回答 (2)

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

> スペルミスなのでエラーメッセージによる解決は不可能ではないですか。 エラーメッセージを丁寧に読めば、かなりの事が分かりますよ。 実際に javac でコンパイルしてみたところ、下記の様なメッセージが表示されました。 --------------------------------------------------------- kadai1710.java:5: シンボルを見つけられません。 シンボル: メソッド parselnt(java.lang.String) 場所 : java.lang.Integer の クラス         if(Integer.parselnt(args[0]) == 1)              ^ エラー 1 個 --------------------------------------------------------- まず、プログラムの5行目でエラーが起こっていることが分かります。 実際に問題が有ったのもその行でした。 (コンパイルしたものにはパッケージ宣言を入れたので、if文は5行目になっています) また、エラーメッセージの1行目からは、コンパイラは[シンボル]が見つけられなかった事も読み取れます。 2行目を読むと、どうやら[シンボル]とはメソッド [parselnt(java.lang.String)] の事のようです。 3行目と合わせて考えると、「Integer には parselnt(String) メソッドは無い」とコンパイラが言っていることが分かります。 したがって 「 Integer.parselnt(args[0]) 」 のどこかに問題が存在することになります。 これだけ絞り込めれば、あとは Integer / parselnt / args の綴りや Integer に実在するメソッドなどを調べていけばよい訳です。 漠然と間違いを探すより、よくエラーメッセージを読んで問題点を絞り込んでいく事が解決への近道かと。

yohta
質問者

お礼

エラーがif(Integer.parselnt(args[0]) == 1)にあることは分かっていましたが、parselntで検索をかけても(間違いバージョン)、サイトがヒットしてしまうためスペルに問題はないと思っていました。エラーメッセージとは1時間以上にらめっこしていたので実質自力での解決は不可能だったと思います。 指摘マークはピリオドではなくif文全体を指していたのですね。 root139さんのようにエラーメッセージの読み方まで書いていただけると非常に参考になります。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

エラーメッセージを読め.

yohta
質問者

お礼

エラーメッセージはピリオドに指摘マークが付いており意味がわからなかったので質問させていただきました。 回答をいただいたのにお言葉ですが…、 一行回答に命令形、ここは2ちゃんねるではありませんよ。No.1さんの的確な回答の後になぜそのような回答をする必要があったのか謎です。 スペルミスなのでエラーメッセージによる解決は不可能ではないですか。

関連するQ&A

専門家に質問してみよう