Informatik Ausgaben alert JavaScript?
Hallo Leute.
hier geht es um die Ausgaben.
die Lösungen: 0 1 2 9
aber ich verstehe einfach nicht wie man darauf kommt. Vorallem der Spring von 2 auf 9
3 Antworten
Geh einfach die Durchgänge durch und setz das jeweilige i ein:
Erster Durchgang: i = 0
alert([0, 1, -1, 2, -2, -3, 3][0]) -> 0
Zweiter Durchgang: i = 2 (i wurde um 2 erhöht. Einmal durch das i++ innen, einmal durch das i++ beim for.)
alert([2, 3, 1, 4, 0, -1, 5][2]) -> 1
Dritter Durchgang: i = 4:
alert([4, 5, 3, 6, 2, 1, 7][4]) -> 2
Vierter Durchgang: i = 6:
alert([6, 7, 5, 8, 4, 3, 9][6]) -> 9
Checkst du's jetzt?
(Du musst nicht jedesmal alle Ergebnisse ausrechnen - Du kannst einfach schauen, welcher Index ausgegeben werden soll (z.B. Index 6 beim letzten), und dann nur das Ergebnis für diesen Index ausrechnen (6+3 = 9). Siehe Dick markierte Zahlen)
das i++ vom Schleifenkopf (for(..) ) wird erst am Ende jedes Durchlaufs ausgeführt.
Heißt i startet mit 0, dann wird das gemacht was in der Schleife steht (unter anderem i um 1 erhöht, aber erst nach der ausgabe), und dann nachdem das ausgeführt wurde wird das i++ vom schleifenkopf ausgeführt.
Schau dir an wie eine For-Schleife funktioniert, dann verstehst du's.
Ich formulier das ganze mal mit einer gleichbedeutenden While-Schleife, dann verstehst du's vlt:
for( int i = 0; i < 7; i++ ) {
alert([...][i++]);
}
ist das selbe wie:
int i = 0;
while ( i < 7 ) {
alert([...][i++]);
i++; //Das i++ vom Schleifenkopf wird an der Stelle gemacht
}
Macht nichts, wenn Du da nicht drauf kommst.
Das ist eine reine Knobelaufgabe.
Als Programmierung ist das übelster Schmutz, weil es, wie Du gerade siehst, kaum nachzuvollziehen ist.
Duchlauf 1: i = 0
Duchlauf 2: i = 2
Duchlauf 2: i = 4
Duchlauf 2: i = 6 -> alert[6] ist i+3 also 9
so sind leider unsere prüfungen aufgebaut..dh die aufgabe besteht GENAU darin herauszufinden was ausgegeben wird. nun weis ich durch die lösungen was ausgegeben wird, kann dies aber nicht nachvollziehen
Im alert Statement darf nicht i++ stehen, weil das ja schon im for Statement steht.
die aufgabe ist so vorgegeben. der quellcode stammt also nicht von mir..
Doch darf es. Dadurch wird i halt doppelt erhöht, ist nichts verbotenes...
es wird also nicht schon bei der ersten i++ in for erhöht, sondern erst beim zweiten durchlauf?