- 締切済み
for,while文とreturn
for文やwhile文の中にreturnは入れれない? 指定がないとコンパイルエラーがでますが どうしてでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- luckymako
- ベストアンサー率55% (29/52)
これだと return 以下のコード (B) はどんな場合も実行されないので、不到達エラーが出ます。 System.out.print(); (A) return; System.out.print(); (B) 以下は if の条件によっては (B) が実行されるのでエラーにはなりません。 System.out.print(); (A) if(bool)return; System.out.print(); (B)
- auty
- ベストアンサー率58% (284/486)
このような可能性もありますね。 --------------------------------------------- 次はエラーとなります。 --------------------------------------------- public static void main(String args[]) { int i; for (i=0; i<10; i++) { System.out.print("i:" + i ); return; System.out.print("i:" + i ); } } --------------------------------------------- 次は、大丈夫です。 --------------------------------------------- public static void main(String args[]) { int i; for (i=0; i<10; i++) { System.out.println("i:" + i ); if (i>=5) return; System.out.println("i:" + i ); } } --------------------------------------------- 上の場合、2番目の System.out.print("i:" + i ); が実行されることは決してありません。 Javaコンパイラーはこれを検知してエラーとします。 文法上到達することの無い文があったときに教えてくれるわけです。 下の場合は、if文により次の文にも到達する可能性があるのでコンパイルはうまく行くわけです。
お礼
ありがとうございました。
- redasurc
- ベストアンサー率37% (3/8)
for や while の中だけで return を使用している場合は そのエラーが出ることがありますが。 for や while の外でも return をきちんと使ってますか?
お礼
ありがとうございました。
お礼
ありがとうございました。