- - PR -
if文の条件式(配列)
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-10-24 11:32
とても初歩的な事で大変恐縮ですが、以下のソースでエラーとなる理由をお教え頂けないでしょうか。
public static void main(String argv[]) { if (argv[0] == null || argv[0].equals("") || argv.length == 0) { System.out.println("指定してください"); } else { System.out.println(argv[0]); } } 条件式に length だけを指定するとエラーにはなりませんでした。 | ||||||||
|
投稿日時: 2008-10-24 11:39
argv.length == 0 の場合、argv[0]は、どんな状態でしょうか。
| ||||||||
|
投稿日時: 2008-10-24 11:59
eclipseのコマンドライン引数に何も入力せず実行した状態です。 ご質問の意図と違う回答でしたらすいません。 | ||||||||
|
投稿日時: 2008-10-24 12:19
Edosson さんが仰りたいのは、argv.length が 0 の時は argv には 「要素がひとつもない」 ですよねということです。 要素 0 は箱自体存在しないので null チェックさえできません。 length の意味を取り違えていませんか? あるいは配列自体を示す箱と、配列の要素の数と、要素の中身をそれぞれで考えられていないかでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-10-24 12:23
>if (argv[0] == null || argv[0].equals("") || argv.length == 0) {
この中に 条件が3つあるわけですが、どういう順番で確認されると思いますか。 | ||||||||
|
投稿日時: 2008-10-24 12:49
書き方が悪かったかな。
配列がどんな状態なのか、理解できたら、あれで済むと考えたのですが。 精進します。 | ||||||||
|
投稿日時: 2008-10-24 13:22
皆さん、返信ありがとうございます。
左から順に判定(?)され、箱自体が存在しないのでエラーになる。 length でエラーにならないのは、箱が存在するかどうかのチェックだから。 という事で問題ないでしょうか。 | ||||||||
|
投稿日時: 2008-10-24 13:32
変数の中身を表示してデバッグしてみてはどうでしょうか。
|
1|2|3
次のページへ»