Schleifen < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Gegeben sind die drei unten abgedruckten Programmfragmente:
int i = 0, k = 0;
while(k < 5)
{
k++;
if(i == 4)
{
continue;
}
i++;
}
int m = 0;
while(m < 10)
{
if(m > 5)
{
break;
}
m++;
}
int j;
for(j = 0;j > -5;j--);
Welche Werte haben i, k, m und j am Ende der jeweiligen Fragmente? |
Hi,
ich gehe gerade nochmal alte Übungsblätter durch, leider habe ich dazu keine Lösungen.
Deshalb muss ich hier nochmal fragen, ob das stimmt was ich gemacht habe.
1. Fragment: i = 5
k =6
Das continue bricht den aktuellen Durchlauf ab, (dadurch wird i nicht mehr erhöht) und die Schleife wird mit der nächsten Iteration fortgesetzt und k wird auf 6 erhöht anschließend i auf 5.
2. Fragment: Break bewirkt ja dass die Anweisung verlassen wird. Ich weiß jetzt nicht ob dann m trotzdem noch erhöht wird, das steht ja außerhalb der Klammer. Oder ob es wieder bei der while-Schleife losgeht. Wenn m erhöht wird, dann würde es bis 10 laufen. Wenn das break bewirkt, dass die ganze Schleife wiederholt wird, dann würde es bei 6 endlos so weiterlaufen.
3. Fragment: j = -5
Grüße
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:59 Di 07.02.2012 | Autor: | Stoecki |
Hi,
ich gehe gerade nochmal alte Übungsblätter durch, leider habe ich dazu keine Lösungen.
Deshalb muss ich hier nochmal fragen, ob das stimmt was ich gemacht habe.
1. Fragment: i = 5
k =6
Das continue bricht den aktuellen Durchlauf ab, (dadurch wird i nicht mehr erhöht) und die Schleife wird mit der nächsten Iteration fortgesetzt und k wird auf 6 erhöht anschließend i auf 5.
>>> k ist hier am ende 5, da genau dann die Schleife abbricht. i ist wegen dem continue 4. wenn die schleife mit k=4 und i=4 beginnt wird nur k hochgezählt
2. Fragment: Break bewirkt ja dass die Anweisung verlassen wird. Ich weiß jetzt nicht ob dann m trotzdem noch erhöht wird, das steht ja außerhalb der Klammer. Oder ob es wieder bei der while-Schleife losgeht. Wenn m erhöht wird, dann würde es bis 10 laufen. Wenn das break bewirkt, dass die ganze Schleife wiederholt wird, dann würde es bei 6 endlos so weiterlaufen.
>>>break stoppt die komplette schleife. der restliche body der schleife wird also nicht mehr augeführt => m=6
3. Fragment: j = -5
>>> j = -5 stimmt
Grüße
>>>Gruß zurück
|
|
|
|