Avatar billede _hj_ Nybegynder
05. december 2004 - 16:20 Der er 14 kommentarer

For loop

Jeg er lige begyndt at lære Java programmering. Jeg har problemer med at forstå ’for løkken’. Nogen der gider at give en forklaring til en java newbie?
Avatar billede arne_v Ekspert
05. december 2004 - 16:32 #1
Kort eksempel:

for(int i = 0; i < 5; i++) {
  // det her udføres 5 gange hvor i har værdierne 0, 1, 2, 3, 4
}
Avatar billede arne_v Ekspert
05. december 2004 - 16:42 #2
Det svarer til:

int i = 0;
while(i < 5) {
  // det her udføres 5 gange hvor i har værdierne 0, 1, 2, 3, 4
  i++;
}

hvis du synes at det er nemmere at gennemskue.
Avatar billede _hj_ Nybegynder
05. december 2004 - 16:45 #3
Hvor er så forskelen imellem for- og while loop'en ?
Avatar billede arne_v Ekspert
05. december 2004 - 16:48 #4
Ovenstående 2 løkker gør præcis det samme.

Jeg ville altid vælge en for løkke i det tilfælde.

Men jeg ville vælge en while løkke i mange andre tilfælde.

Som hovedregel vil man bruge for løkke hvis man kender antal gennemløb og while
løkke hvis man ikke gør.
Avatar billede kalp Novice
05. december 2004 - 17:26 #5
hj

forskellen er at i en while loop oprettes tælleren før loopen og tælleren få en ny værdi i while loopens paranteser.

i en for loop ligger det hele i betingelsen ..

først oprettes en tæller.. betingelse og tælleren som bliver opdateret..

tælleren bliver først kørt efter det i parentereserne..

dvs..

for(int i = 0; i < 3; i++)
{
først bliver dette afviklet.. herefter bliver i++ kørt.
}
Avatar billede kalp Novice
05. december 2004 - 17:28 #6
du behøver heller ikke en tæller i while loops..

fx kunne du skrive

while(etellerandet != null)
{
etellerandet = nogetnyt;
}

lidt dårligt eksempel.. men så længe etellerandet ikke er null så bliver løkken afviklet
Avatar billede _hj_ Nybegynder
12. december 2004 - 16:33 #7
Tak for jeres udmærkede eksempler.
Jeg hørte fra en der er god til at skrive java kode, at det er muligt at bruge rekursion istedet for en for-loop.

Hvordan ville koden se ud, hvis der skulle bruges rekursion istedet for et for-loop ?
Avatar billede arne_v Ekspert
12. december 2004 - 16:37 #8
public void doit(int n) {
  if(n > 0) {
      // gør noget
      doit(n - 1);
  }
}

men vent med rekursion til du har meget styr på løkker !!
Avatar billede _hj_ Nybegynder
12. december 2004 - 17:05 #9
Tak Arne_V, jeg må nok vente med rekursionen.

Jeg sidder med en Grundlæggende java bog med eksempler.

Jeg tror, at jeg har fundet ud af For og While, men hvad er så forskelen imellem en 'do while-løkke' og en 'while-løkke'
Avatar billede arne_v Ekspert
12. december 2004 - 17:10 #10
while tester i toppen

do while tester i bunden

den primære forskel er at indholdet af en do while løkke altid udføres mindst en gang
Avatar billede _hj_ Nybegynder
12. december 2004 - 17:25 #11
ahhh, det kan jeg se nu, når du skriver det :)

Jeg har en opgave her, hvor jeg skal lave et program som afrunder til hele 25 ører.
Jeg har skitset intervallerne op når der skal afrundes.
[0;0,125] = 0,00
[0,13;0,375] = 0,25
[0,38;0,625] = 0,50
[0,63;0,875] = 0,75
[0,88;0,99] = 1,00

Jeg har valgt at løse opgaven med IF sætninger, men det bliver uoverskueligt til sidst. Nogen der har nogle forslag ?
Avatar billede kalp Novice
12. december 2004 - 19:33 #12
if (x >= 0 && x <= 0.125)

det mit bud
Avatar billede kalp Novice
12. december 2004 - 19:34 #13
sorry... mangler lige resten.. skulle ikke have postet endnu!! wait hehe
Avatar billede kalp Novice
03. januar 2005 - 23:22 #14
Husk at lukke spørgsmålet
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