回答編集履歴
1
追記
test
CHANGED
@@ -160,6 +160,86 @@
|
|
160
160
|
|
161
161
|
|
162
162
|
|
163
|
+
コメントを受けて
|
164
|
+
|
165
|
+
---
|
166
|
+
|
167
|
+
> 1)for文の初期化式を省略しているという箇所なのですが、省略されているものはint i=0でいいのでしょうか?
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
**0とは限りませんし、iとも限りません。**
|
172
|
+
|
173
|
+
ループカウンタを使う場合は、前もって初期化しておく必要があります。
|
174
|
+
|
175
|
+
```Java
|
176
|
+
|
177
|
+
int i = 0;
|
178
|
+
|
179
|
+
for(; i < 4; ++i) {
|
180
|
+
|
181
|
+
}
|
182
|
+
|
183
|
+
```
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
次のような場合に省略されるように思います。
|
188
|
+
|
189
|
+
- ループカウンタをfor文外で利用したい場合
|
190
|
+
|
191
|
+
- ループカウンタを必要としない場合 (while文で書いた方が読みやすい気がする)
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
ループカウンタを前もって初期化しない場合、コンパイルエラーになります。
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
---
|
200
|
+
|
201
|
+
> 2)ループが空白だと、iが4になるまで繰り返しが起こらないということですか?それとも、ループの所が空白でもiが4になるまでループは起こるのですか?
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
良い質問ですね。**後者が正しいです。**
|
206
|
+
|
207
|
+
いわゆる空ループを書く目的は、次の二点かと思います。
|
208
|
+
|
209
|
+
- 待ち時間を作りたい場合 (簡潔ではありますが、良い方法だとは思いません。)
|
210
|
+
|
211
|
+
- カウンタを外部で宣言しており、**それの変化を利用したい場合**
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
後者はしばしば書くことがありますが、無理に使うものでもありません。
|
216
|
+
|
217
|
+
もしそのようなコードを見かけましたら、それから動作を追っても遅くないと思います。
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
---
|
222
|
+
|
223
|
+
『次のループが実行されない!なんで!』というのは初心者あるある質問です。
|
224
|
+
|
225
|
+
```Java
|
226
|
+
|
227
|
+
for(int i = 0; i < 10; ++i);
|
228
|
+
|
229
|
+
System.out.println(i);
|
230
|
+
|
231
|
+
```
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
だからこそ、ひっかけ問題的に取り扱われているのでしょう。
|
236
|
+
|
237
|
+
ただ、**ひっかかってはいけませんが、他人をひっかけるコードを書いてもなりません。**
|
238
|
+
|
239
|
+
出来るだけ素直にコードを書くことを意識出来ると良いですね。
|
240
|
+
|
241
|
+
|
242
|
+
|
163
243
|
質問の仕方について
|
164
244
|
|
165
245
|
---
|