Gå til innhold

while løkke, skrive ut x, y av flere muligheter


Anbefalte innlegg

Skrevet (endret)

Hei,

 

Sitter med en oppgave som går ut på å skrive ei while løkke som skal skrive ut alle multiples av 5 mellom 10 og 95..

 

Åssen i huleste går det til?

 

int teller = 0;

while(teller ==15 && <96) }

System.out.println(teller);

teller = teller + 10;

}

 

Jeg tipper dette er helt feil.

 

Håper noen kan bistå meg!

Endret av pralinaen
Videoannonse
Annonse
Skrevet

Ser ut som om du må lære deg litt syntaks. I tillegg er %-operatoren fin; også kjent som modulo.

 

while (teller er mindre enn 95)
skriv ut teller
teller = teller pluss 5

Eller:

while (teller er større eller lik 10 og teller er mindre eller lik 95)
hvis (teller delt på fem gir null i rest)
	skriv ut teller
øk teller

Skrevet

int teller = 0;
while(teller ==15 && <96) }
System.out.println(teller);
teller = teller + 10;
}

 

Kan gå gjennom koden og fortelle deg hvorfor denne ikke vil virke, for litt læring om feilleting i kode.

 

while løkka de vil ALDRI slå til, rett og slett fordi teller = 0, dermed vil teller==15 aldri slå til, dermed hopper den ut av while løkka siden && forteller at både teller == 15 og < 95 skal slå til.

 

For det andre er ikke < 95 noe som helst, kan ta feil her, men tror kompilatoren ikke er intelligent nok til å forstå at dette er ment som teller < 95.

 

Den her kommer litt an på formuleringen i oppgaven. Hvis du skal ha til og med 95 må du sjekke om teller <= 95. Sjekker du kun teller < 95 går sjekken kun opp til og med da teller == 94.

 

Krøllparentesen din etter while(noe) skal være andre veien. { og ikke }.

 

Det å skrive ut hver eneste kan være rett, så lenge du øker telleren riktig. Ellers kan du sjekke om teller % 5 == 0 og øke teller med 1, men hvis du øker teller med 5 for hver gang er det i orden.

 

Her øker du teller med 10, hvorfor du gjør det når du skal ha multiplum av 5 er litt utenfor min forstand da du vil hoppe over halvparten av multiplummene.

 

Så litt til slutt. Du antar i løsningen at du vet en del ting, som at hvis du legger til 5 til verdien vil den neste verdien også være ett multiplum av 5. Hva hvis du gjør om startverdien til 14? Du vet ikke nødvendigvis noenting om hva brukeren vil ha ut når du koder. Så hvis jeg fikk en oppgave som dette ville jeg startet på minste mulige verdi, sjekket om verdi modulus 5 ga 0 og hvis den gjorde det skrive den ut. Så øke verdien med 1 og sjekke igjen. På den måten kan du, når du lærer litt om input, la brukeren bestemme startverdi, sluttverdi og hvilken verdi den skal være delelig med. Nå vet jeg ikke hvor langt du er kommet, men vil tippe du ikke kan mye input enda. Men det å gjøre det på den måten vil hvertfall gjøre det å implementere interaksjon med brukeren i ettertid vesentlig lettere enn å anta at du egentlig vet noe som helst bortsett fra at du skal gå gjennom noen tall og sjekke om de er delelige på ett tall.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...