For-Schleife
-
ich habe folgenden quelltext und dazu eine frage:
for(a=0;a<=30;a++) for(b=0;b<=4;b++) x=a*0.1+b*0.02;
also dies sind zwei hintereinander stehende forschleifen.
wenn ich in die erste gehe, ist der erste wert a=0 und dann b=0.
doch was passiert dann? läuft erst a 30 mal durch und dann b viermal oder läuft a und b im wechsel und erhöht sich um eins?
danke für eure antworten!
-
Du kannst das auch so schreiben:
for(a=0;a<=30;a++) { for(b=0;b<=4;b++) { x=a*0.1+b*0.02; } }
Es wird also erst b bis 4 hochgezählt, dann a um eins erhöht, dann wieder b bis 4, dann wieder a um eins...
-
also ich habe jetzt mal ein printf eingefügt um das zu sehen was passiert:
for(a=0;a<=30;a++) for(b=0;b<=4;b++) { printf("%d\n\n",a); printf("%d\n",b); x=a*0.1+b*0.02; //printf("%3.2lf",x); } };
aber komischerweise etwas ganz anderes als ich erwarte!
er spuckt folgende zahlen aus:0
11 müsste er hier dann nicht bei eins anfangen? warum bei 11?1
112
113
114
120
121
122
123
124
130
131
132
133
134
140
141
142
143
144
150
151
152
153
154
160
161
162
163
164
170
171
172
173
174
180
181
182
183
184
190
191
192
193
194
200
201
202
203
204
210
211
212
213
214
220
221
222
223
224
230
231
232
233
234
240
241
242
243
244
250
251
252
253
254
260
261
262
263
264
270
271
272
273
274
280
281
282
283
284
290
291
292
293
294
300
301
302
303
304
sorry dass das so lang ist!
-
Gib mal beides in einer Zeile aus:
printf("a %d b %d\n",a,b);
Offenbar kannst Du in der Konsole nicht bis zum Anfang zurück scrollen.
Kannst ja mal vor den Schleifen folgendes ausgeben:printf("Start");
-
ohh, ja, jetzt sieht es viel besser aus!
vielen vielen dank für die schnelle antwort!