6 svar
179 visningar
MisteriosoO behöver inte mer hjälp
MisteriosoO 15 – Fd. Medlem
Postad: 29 dec 2018 02:24

Loop

"Gör ett program som skriver ut alla heltal mellan 0 och 1000; inkludera både 0 och 1000."

Jag gjorde:

int x = -1;
while (x<1000) {
System.out.println(x=x+1);

}

Min fråga: 

Jag gjorde rätt (trot jag) då jag fick det som det frågades efter, men jag undrar varför det visas "1000" på utdatafältet. Jag skrev while(x<1000), det borde inte finnas "1000" på datafältet. 

Tack för hjälpen.

Jonto Online 9688 – Moderator
Postad: 29 dec 2018 02:44

Ja men x kan vara 999. Och sen har du angett att den ska printa x=x+1 och då printar den 999+1=1000

Laguna Online 30712
Postad: 29 dec 2018 09:27

Man kan skriva som du gör, om det är det man vill, men det blir klarare och mindre risk för fel om man inkrementerar x först och skriver ut det sedan:

{

   x = x+1;

   System.out.println(x);

}

 

Ett alternativ är att använda postinkrementoperatorn, för dess värde är vad var x var före inkrementeringen:

{

   System.out.println(x++);

}

Affe Jkpg 6630
Postad: 29 dec 2018 10:57

for (int x=0; x<=1000; x++) {
System.out.println(x);

}

Laguna Online 30712
Postad: 29 dec 2018 11:44
Affe Jkpg skrev:

for (int x=0; x<=1000; x++) {
System.out.println(x);

}

Fast inte <= då.

Yngve 40566 – Livehjälpare
Postad: 29 dec 2018 12:22
Laguna skrev:
Affe Jkpg skrev:

for (int x=0; x<=1000; x++) {
System.out.println(x);

}

Fast inte <= då.

 Jo det ska vara <=, annars skrivs inte 1000 ut.

Laguna Online 30712
Postad: 29 dec 2018 12:59
Yngve skrev:
Laguna skrev:
Affe Jkpg skrev:

for (int x=0; x<=1000; x++) {
System.out.println(x);

}

Fast inte <= då.

 Jo det ska vara <=, annars skrivs inte 1000 ut.

Oj, stämmer, jag glömde att läsa hela frågan, jag utgick från "det borde inte finnas "1000" på datafältet". 

Svara
Close