Gå til innhold

[Løst] Hvorfor blir det feil sum her?


Anbefalte innlegg

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? :hmm:

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
Videoannonse
Annonse

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 av Fred7555
Lenke til kommentar

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 :confused:

 

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 av Defo
Lenke til kommentar

 

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 :confused:

 

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

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...