6 svar
80 visningar
MisteriosoO är nöjd med hjälpen!
MisteriosoO 25
Postad: 29 dec 2018

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.

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 3757
Postad: 29 dec 2018

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 4137
Postad: 29 dec 2018

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

}

Laguna 3757
Postad: 29 dec 2018
Affe Jkpg skrev:

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

}

Fast inte <= då.

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 3757
Postad: 29 dec 2018
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 Avbryt
Close