Defo Skrevet 11. september 2013 Del Skrevet 11. september 2013 Hei! Denne while loopen skal addere alle tall mellom 1 og 10. Dette er i mitt hode 55 (1+2+3+4+5+6+7+8+9+10). Men koden min nedenfor gir svaret 66... how come? public class Test2 { public static void main(String[] args) { int x = 0; int sum = 0; while(x <= 10) { ++x; sum += x; } System.out.println(sum); } } Lenke til kommentar
cronbach alpha Skrevet 11. september 2013 Del Skrevet 11. september 2013 (endret) tror det blir fordi du går fra 0 til 10 som er 11 steg. du kan fjerne "=" tegnet, da teller den opp til 9 som blir 10 steg. eller du kan sette x = 1 (men med samme kode), osv Endret 11. september 2013 av cronbach alpha Lenke til kommentar
Persn Skrevet 11. september 2013 Del Skrevet 11. september 2013 x = 1 med samme kode vil nok ikke fungere siden x++ skjer før addisjonen. Det som skjer da er at x blir satt til 2 først før den begynnere å summere, og sluttresultatet vil bli 54 siden ett-tallet er hoppet over. Lenke til kommentar
Fred7555 Skrevet 11. september 2013 Del Skrevet 11. september 2013 (endret) Det er fordi du har med sum += 11; Når x blir 10, så sjekker den om den er innenfor, og den er (x er under eller lik 10), så øker x til 11, adderer til sum, også hopper ut av while-loopen. Du må enten skifte til <= 9, eller < 10 Eventuelt skifte rekkefølge på ++x og sum += x, slik at den adderer summen før den øker seg selv. Endret 11. september 2013 av Fred7555 Lenke til kommentar
Defo Skrevet 11. september 2013 Forfatter Del Skrevet 11. september 2013 Takker for oppklaringer! Lenke til kommentar
Defo Skrevet 16. september 2013 Forfatter Del Skrevet 16. september 2013 (endret) Et problem til her... Her blir bruker bedt om å skrive inn et heltall 10 ganger, så skal programmet si hvilket tall som var størst. Men... hvis jeg skriver inn f.eks 1,2,3,4,5,6,7,8,9 og 10, så sier programmet at 15 var det største tallet Hvis jeg skriver inn 10,20,30,40,50,60,70,80,90, og 100, så sier programmet at 150 var det største tallet... Noen som vet hva som er feil? import javax.swing.JOptionPane; public class Test { public static void main(String[] args) { int størst = 0; for(int x = 0; x < 10; x++) { String spm = JOptionPane.showInputDialog ("Skriv inn et heltall: "); int tall = Integer.parseInt(spm); if (tall > størst) størst += tall; } JOptionPane.showMessageDialog (null, "Det største tallet var: " + størst); } } Endret 16. september 2013 av Defo Lenke til kommentar
MrL Skrevet 16. september 2013 Del Skrevet 16. september 2013 (endret) Først og fremst: if (tall > størst) størst += tall; Her skal du vel ikke bruke +=, men bare =. Du skal sette tallet til det største, ikke plusse på det forrige tallet. Endret 16. september 2013 av MrLG Lenke til kommentar
Sutekh Skrevet 16. september 2013 Del Skrevet 16. september 2013 Et problem til her... Her blir bruker bedt om å skrive inn et heltall 10 ganger, så skal programmet si hvilket tall som var størst. Men... hvis jeg skriver inn f.eks 1,2,3,4,5,6,7,8,9 og 10, så sier programmet at 15 var det største tallet Hvis jeg skriver inn 10,20,30,40,50,60,70,80,90, og 100, så sier programmet at 150 var det største tallet... Noen som vet hva som er feil? import javax.swing.JOptionPane; public class Test { public static void main(String[] args) { int størst = 0; for(int x = 0; x < 10; x++) { String spm = JOptionPane.showInputDialog ("Skriv inn et heltall: "); int tall = Integer.parseInt(spm); if (tall > størst) størst += tall; } JOptionPane.showMessageDialog (null, "Det største tallet var: " + størst); } } "+=" legger det nye "størst" til det gamle. Du må sette "størst = tall" i stedet. Lenke til kommentar
Defo Skrevet 16. september 2013 Forfatter Del Skrevet 16. september 2013 Først og fremst: if (tall > størst) størst += tall; Her skal du vel ikke bruke +=, men bare =. Du skal sette tallet til det største, ikke plusse på det forrige tallet. Såklart... x) Takker! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå