Avatar billede mindreklog Nybegynder
23. november 2002 - 22:39 Der er 9 kommentarer og
2 løsninger

Grundig forklaring på for-løkken

Hejsa,

Er der en venlig sjæl, som kan give mig en grundig og udførlig forklaring af for-løkken...Jeg er begynder og skal derfor have det en med ske :)

Tak
Avatar billede erikjacobsen Ekspert
23. november 2002 - 22:40 #1
det er det samme som en while-løkke, bare nemmere at bruge til simple
gennemløb. Eksempel

  for (i=0;i<10;i++) { ... }

er det samme som

  i=0;
  while (i<10) {
    ...
      i++;
  }
Avatar billede abpdk Nybegynder
23. november 2002 - 22:43 #2
For løkker er del op i tre dele.
Del 1: Hvor man skal starte
Del 2: Hvor man skal slutte
Del 3: Hvad der skal ske for hvert gennemløb

eks:

for (i=0; i<10; i++) {}

Løkken starter med i=0 og køre så længe i er mindre end 10. For hvert gennemløb øges i med 1 og løkken vil derfor terminere.

andet eks.

for (i=10; i>-10; i--) {}

Løkken stater med i=10 og køre så længe i er større end -10. For hvert gennemløb mindskes i med 1 og løkken terminerer tilsidst.
Avatar billede mindreklog Nybegynder
23. november 2002 - 22:46 #3
Ok - er med - men hvad afgør hvad i er??

og er dette ikke en uendelig løkke: for (i=10; i>-10; i--) {}
eller er det mig der har misforstået noget!?
Avatar billede abpdk Nybegynder
23. november 2002 - 22:50 #4
I skal være erklæret i forvejen eller i for-løkken. Du kan f.eks. godt (mener jeg) skrive for (int i=0; ..... Hvad skulle der være i vejen med den for-løkke?
Avatar billede mindreklog Nybegynder
23. november 2002 - 22:55 #5
1. ok hvis jeg laver "for (int i=0;i<10;i++) - det vil sige, at første gang den kører igennem - vil den gøre det med i=0 og derefter med i=1 osv. pga. af det sidste led i++
er dette rigtig forstået?? 
2. Hvis det er det - er jeg helt med på, at det ikke er en uendelig løkke - havde overset i--
Avatar billede erikjacobsen Ekspert
23. november 2002 - 22:55 #6
med
  for (i=10; i>-10; i--) {}
får i værdierne 10,9,....0,....-8,-9
Det er jo godt nok - hvis det er det man vil have ;=)
Avatar billede abpdk Nybegynder
23. november 2002 - 22:58 #7
Nemlig, det er rigtigt at det ville have været en uendelig løkke med i++, men ikke med i--. Desuden tror jeg at java compileren ville have sagt noget hvis du skrev en oplagt uendelig løkke.

Jeg er ikke helt sikker men man kan vist også skrive noget i retning af:

i+=1, i-=1, i*=1 osv.. Muligvis i en lidt anden rækkefølge, hvis du forstår.
Avatar billede abpdk Nybegynder
23. november 2002 - 23:01 #8
Bemærk, hvis du vil bruge f.eks. i*=2 (1 er jo noget vrøvl) er det naturligvis ikke nogen god ide at starte med i=0 :)
Avatar billede cybermazedk Nybegynder
26. november 2002 - 07:05 #9
Mht. uendelige løkker, kan:

while(true);

klare tricket :D
Hvis man altså skulle ønske at lave en uendelig lykke ...
Avatar billede cybermazedk Nybegynder
26. november 2002 - 07:07 #10
*en uendelig løkke ...

Elendig tyrk fejl.
Avatar billede erikjacobsen Ekspert
26. november 2002 - 07:21 #11
eller

  for(;;;);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester