質問編集履歴

3

追加の削除 長すぎたため、あらたに質問いたします。

2018/09/09 14:46

投稿

takub
takub

スコア15

test CHANGED
File without changes
test CHANGED
@@ -113,119 +113,3 @@
113
113
 
114
114
 
115
115
  初歩的な質問で恐縮ですが、よろしくお願いいたします。
116
-
117
-
118
-
119
-
120
-
121
- 追記です。
122
-
123
-
124
-
125
- みなさま、ご教授いただきましてありがとうございました。
126
-
127
- 下記、理解できました。
128
-
129
- ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
130
-
131
- ・初期値0に対して%を使っているので最初から表示されない。
132
-
133
- if($i % 7 == 0 ){
134
-
135
- continue;
136
-
137
-
138
-
139
- ・continue以降の処理はすべてスキップされるため、$iに+されない
140
-
141
- →7以後に進めない。
142
-
143
- ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
144
-
145
-
146
-
147
-
148
-
149
- ※度々恐縮ですが、関連して質問があります。
150
-
151
- (もし、質問を分けるべきでしたらすみません)
152
-
153
-
154
-
155
- ●質問
156
-
157
- continueの「以後」の処理をスキップするという
158
-
159
- 「以後」は位置的に下にある命令文をスキップするという意味でしょうか?
160
-
161
- それとも、処理の流れとして「以後」を指すのでしょうか?
162
-
163
-
164
-
165
-
166
-
167
- ●質問の意図・詳細
168
-
169
- ```PHP
170
-
171
- for($i = 1; $i <= 10; $i++){
172
-
173
- if($i % 3 == 0 ){
174
-
175
- continue;
176
-
177
- }
178
-
179
- echo $i;
180
-
181
- }
182
-
183
- //結果3の倍数以外が(1.2.4.5.7.8.10)表示。
184
-
185
- ```
186
-
187
-
188
-
189
- 上記の場合、for構文の処理の流れとして
190
-
191
- 1~5の処理の流れになると思います。
192
-
193
-
194
-
195
-
196
-
197
- 1.初期化  → $i = 1
198
-
199
- 2.条件式の評価trueならループ → $i <= 10
200
-
201
- 3.[3]で割り切れる場合、以後の処理をスキップする 
202
-
203
-
204
-
205
- → if($i% 3 == 0 ){
206
-
207
- continue;
208
-
209
- }
210
-
211
-
212
-
213
- 4.$iをで表示 →echo $i;
214
-
215
- 5.$i に1を足す。 →$i++
216
-
217
-
218
-
219
- continueが以後の処理をスキップするなら、
220
-
221
- -------------
222
-
223
- 5.$i に1を足す。 →$i++
224
-
225
- -------------
226
-
227
- という処理もスキップされてしまい、3の時点から更新されないんじゃないかと思うのですが。
228
-
229
-
230
-
231
- continueの「以後」は位置的にに「continueよりも下にある命令文」を指すのでしょうか?

2

ミスの原因の理解と追加の質問

2018/09/09 14:46

投稿

takub
takub

スコア15

test CHANGED
File without changes
test CHANGED
@@ -113,3 +113,119 @@
113
113
 
114
114
 
115
115
  初歩的な質問で恐縮ですが、よろしくお願いいたします。
116
+
117
+
118
+
119
+
120
+
121
+ 追記です。
122
+
123
+
124
+
125
+ みなさま、ご教授いただきましてありがとうございました。
126
+
127
+ 下記、理解できました。
128
+
129
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
130
+
131
+ ・初期値0に対して%を使っているので最初から表示されない。
132
+
133
+ if($i % 7 == 0 ){
134
+
135
+ continue;
136
+
137
+
138
+
139
+ ・continue以降の処理はすべてスキップされるため、$iに+されない
140
+
141
+ →7以後に進めない。
142
+
143
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
144
+
145
+
146
+
147
+
148
+
149
+ ※度々恐縮ですが、関連して質問があります。
150
+
151
+ (もし、質問を分けるべきでしたらすみません)
152
+
153
+
154
+
155
+ ●質問
156
+
157
+ continueの「以後」の処理をスキップするという
158
+
159
+ 「以後」は位置的に下にある命令文をスキップするという意味でしょうか?
160
+
161
+ それとも、処理の流れとして「以後」を指すのでしょうか?
162
+
163
+
164
+
165
+
166
+
167
+ ●質問の意図・詳細
168
+
169
+ ```PHP
170
+
171
+ for($i = 1; $i <= 10; $i++){
172
+
173
+ if($i % 3 == 0 ){
174
+
175
+ continue;
176
+
177
+ }
178
+
179
+ echo $i;
180
+
181
+ }
182
+
183
+ //結果3の倍数以外が(1.2.4.5.7.8.10)表示。
184
+
185
+ ```
186
+
187
+
188
+
189
+ 上記の場合、for構文の処理の流れとして
190
+
191
+ 1~5の処理の流れになると思います。
192
+
193
+
194
+
195
+
196
+
197
+ 1.初期化  → $i = 1
198
+
199
+ 2.条件式の評価trueならループ → $i <= 10
200
+
201
+ 3.[3]で割り切れる場合、以後の処理をスキップする 
202
+
203
+
204
+
205
+ → if($i% 3 == 0 ){
206
+
207
+ continue;
208
+
209
+ }
210
+
211
+
212
+
213
+ 4.$iをで表示 →echo $i;
214
+
215
+ 5.$i に1を足す。 →$i++
216
+
217
+
218
+
219
+ continueが以後の処理をスキップするなら、
220
+
221
+ -------------
222
+
223
+ 5.$i に1を足す。 →$i++
224
+
225
+ -------------
226
+
227
+ という処理もスキップされてしまい、3の時点から更新されないんじゃないかと思うのですが。
228
+
229
+
230
+
231
+ continueの「以後」は位置的にに「continueよりも下にある命令文」を指すのでしょうか?

1

質問内容の説明が不十分だったため、追記

2018/09/09 14:39

投稿

takub
takub

スコア15

test CHANGED
@@ -1 +1 @@
1
- while構文でcontinueを使うと上手く表示され
1
+ while構文でcontinueを使うと無限ループによう状態になる
test CHANGED
@@ -1,12 +1,30 @@
1
1
  PHPを勉強中です
2
2
 
3
- while構文でcontinueを使うと上手く表示されない理由が
3
+ while構文でcontinueを使うと無限ループにような状態(更新しても30秒読み込みを続け、最終的に表示されない)になりました。
4
4
 
5
- なぜかわからないため、質問させていただきます。
5
+ その理由がなぜかわからないため、質問させていただきます。
6
6
 
7
7
 
8
8
 
9
+ 「何がしたかったのか」
10
+
9
- 7の倍数だけを抜いた1~100までの数字を改行して出力するプログラムを書いてみました。
11
+ 7の倍数だけを抜いた1~100までの数字を改行して出力する
12
+
13
+
14
+
15
+  →「continue文を使って7で割り切れる数字を出力しないようにする」
16
+
17
+  →
18
+
19
+ if($i % 7 == 0 ){
20
+
21
+ continue;
22
+
23
+ }
24
+
25
+
26
+
27
+ 以下のコードで無限ループのような状態(更新しても30秒読み込みを続ける)になりました。
10
28
 
11
29
  ```PHP
12
30
 
@@ -40,7 +58,7 @@
40
58
 
41
59
 
42
60
 
43
-
61
+ 以下が上手くいったコードです。
44
62
 
45
63
  ```PHP
46
64