Informatik Ausgaben alert JavaScript?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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)

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
Eliifff 
Fragesteller
 15.07.2021, 22:06

es wird also nicht schon bei der ersten i++ in for erhöht, sondern erst beim zweiten durchlauf?

0
MrAmazing2  15.07.2021, 22:11
@Eliifff

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.

0
MrAmazing2  15.07.2021, 22:15
@Eliifff

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
}
0
Eliifff 
Fragesteller
 15.07.2021, 22:06

vielen lieben dank für die ausführliche antwort!!

1

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

Eliifff 
Fragesteller
 15.07.2021, 21:21

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

0

Im alert Statement darf nicht i++ stehen, weil das ja schon im for Statement steht.

Eliifff 
Fragesteller
 15.07.2021, 21:19

die aufgabe ist so vorgegeben. der quellcode stammt also nicht von mir..

0
Gegsoft  15.07.2021, 21:22
@Eliifff

Aber so wird bei jedem Durchgang der Schleife i erhöht.

0
MrAmazing2  15.07.2021, 21:32

Doch darf es. Dadurch wird i halt doppelt erhöht, ist nichts verbotenes...

0