-PR-
解決
済み

for文の()内のメソッドは?

  • 暇なときにでも
  • 質問No.72042
  • 閲覧数141
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 66% (8/12)

普通、String型の変数strの長さを知りたいと
思ったら str.length() で調べると思うのですが、
for 文中では、こういう風になりますよね‥‥

for (int i=0; str.length; i++)

ただ、while文の()内では、ちゃんとlengthメソッドの
後に()を付けていたはず。

for文の場合の()は特殊なのかなと思うのですが、
これってどういう理屈なのでしょうか?

# ;(セミコロン)がどうも怪しい感じなのですが。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル6

ベストアンサー率 27% (3/11)

まず、
>for文の場合の()は特殊なのかなと思うのですが、
for文内であろうと、String.length()の()がはずすことはできません。

どの本にfor (int i=0; str.length; i++) といった文がかかれていたのはわかりませんが、
考えられる原因として、以下の2点が挙げられます。
1.strが配列である。
配列の場合、配列の要素の数を調べるときには
hogehoge.length というように、()はつけません。
先ほどのforループの中に str[i] といった記述があれば、strは配列です。
変数strの定義をもう一度確認してください。
2.記述ミス
String型の変数strの文字列の長さを調べようとしているのに、
メソッドの括弧を付け忘れた可能性もあります。

いずれにせよ、str変数の定義をもう一度確認してみてください。
お礼コメント
yuui

お礼率 66% (8/12)

回答、ありがとうございます。

ご指摘のとおり、strはString[]型(配列型)でした。
なるほど、配列の要素数はカッコなしの.lengthで得るのですね。

ただ、.length()はメソッドだということは分かるのですが、「.length」はJavaの文法用語でいう何にあたるのでしょうか。インスタンスフィールドでしょうか?(つまり配列型の変数が生成される時に、lengthフィールドに要素数が格納されているということなのでしょうか)

APIリファレンスでArray型を調べたのですが、それらしきフィールドは見あたらないようでした‥‥。
投稿日時 - 2001-05-06 01:27:36
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

>「.length」はJavaの文法用語でいう何にあたるのでしょうか もしかして JavaScript? であれば、プロパティ(Property)です。 参考URLには、Netscape のリファレンスの該当ページを示しておきます。 ...続きを読む
>「.length」はJavaの文法用語でいう何にあたるのでしょうか

もしかして JavaScript?
であれば、プロパティ(Property)です。

参考URLには、Netscape のリファレンスの該当ページを示しておきます。
お礼コメント
yuui

お礼率 66% (8/12)

回答、ありがとうございます。

>もしかして JavaScript?
>であれば、プロパティ(Property)です。

いえ、JavaScriptではなく、Javaです。
でもなるほど、JavaScriptではプロパティですか。

なにかヒントを掴めそうな気もするので、
この機会にJavaScriptも勉強してみます(^^)
投稿日時 - 2001-05-06 09:03:14


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ