Gå til innhold

[Løst] Skjønner ikke feilen


Anbefalte innlegg

Hei, jeg prøver å lage et program der du kan taste ett tall og da vil programmet si fra om det tallet kan deles med 3. Det betyr at resten skal bli null, derfor bruker jeg modulus tegnet, % . Men jeg får en feilmelding pga den linja jeg har laget for sum, håper noen ser hvordan man kan fikse det. Jeg har skrivd feilmeldingen nederst og markert linjen med rød farge der feilen ligger.

 

Her er programmet:

 

import javax.swing.JOptionPane;

 

public class Oppgave14

 

{

public static void main(String [] args)

{

 

String førsteTallString = JOptionPane.showInputDialog("Se om tallet er delelig med 3");

String resultat;

 

int førsteTall = Integer.parseInt(førsteTallString);

int sum = (førsteTall % 3) == 0;

 

resultat = "";

 

if (førsteTall == sum)

resultat = resultat + førsteTall + " er delelig med 3";

 

if (førsteTall != sum)

resultat = resultat + førsteTall + " ikke delelig med 3";

 

JOptionPane.showMessageDialog(null, resultat, "Delelig med 3?", JOptionPane.PLAIN_MESSAGE);

 

 

 

}

}

 

Feilmeldingen:

 

 

Oppgave14.java:13: incompatible types

found   : boolean

required: int

   int sum = (f�rsteTall % 3) == 0;

                              ^

1 error

Endret av techn9e
Lenke til kommentar
Videoannonse
Annonse

Vel, hva vil du oppnå med den linja? Jeg har aldri sett kode slik du skriver det i den linja.

 

int a = regnestykke == 0;

 

Jeg tror det er feil måte å skrive på, del det heller opp i to linjer. Her er det både = og == i samme linje.

 

Hva om du bare skriver:

 

int sum = (førsteTall % 3) ;

Endret av Abigor
Lenke til kommentar

Du prøver å lagre en boolean value i en int, det er det som er problemet.

 

Hvis jeg skriver "boolean sum = (førsteTall % 3) == 0;"

 

Får jeg disse feilmedlingene:

 

 

Oppgave14.java:17: incomparable types: int and boolean

if (f�rsteTall == sum)

              ^

Oppgave14.java:20: incomparable types: int and boolean

if (f�rsteTall != sum)

              ^

2 errors

 

 

 

 

Vel, hva vil du oppnå med den linja? Jeg har aldri sett kode slik du skriver det i den linja.

 

int a = regnestykke == 0;

 

Jeg tror det er feil måte å skrive på, del det heller opp i to linjer. Her er det både = og == i samme linje.

 

Hva om du bare skriver:

 

int sum = (førsteTall % 3) ;

 

Jeg vil at (førsteTall %3) skal bli 0. Så at resten blir null go da skjønner programmet at tallet kan deles med 3. Jeg skjønner ikke hvordan jeg kan den linjen i parter..?

Endret av techn9e
Lenke til kommentar

Jeg skjønner ikke hvorfor du har == på en linje hvor du erklærer int.

 

Hva vil du oppnå? == er en test.

 

Altså typisk if test.

 

Hvis a er lik b, gjør c.

if(a==b){

c();

}

 

== er jo det vi kaller "erlik" i matten. Så jeg vil at det stykket i parantesen skal bli erlik 0. Da skjønner programmet at det tallet er delelig med 0 fordi resten erlik 0.

 

Edit: Du har nok rett i at det ikke skal skrives sånn, men jeg skjønner ikke hvordan jeg skal utrykke det i java.

Endret av techn9e
Lenke til kommentar

ok, feilen du gjør er at du prøver å legge en boolean inn i en int.

int førsteTall = Integer.parseInt(førsteTallString);
int sum = (førsteTall % 3) == 0;//ikke lov

resultat = "";

if (førsteTall == sum)
resultat = resultat + førsteTall + " er delelig med 3";

if (førsteTall != sum)
resultat = resultat + førsteTall + " ikke delelig med 3";

 

det du kan gjøre for å løse problemer er:

int førsteTall = Integer.parseInt(førsteTallString);

resultat = "";

if ((førsteTall % 3) == 0)
resultat = resultat + førsteTall + " er delelig med 3";
else
resultat = resultat + førsteTall + " ikke delelig med 3";

 

er par småtips til, ikke bruke æøå i variablenavn. les deg opp på if/else if/else.

Endret av xaco
  • Liker 1
Lenke til kommentar

ok, feilen du gjør er at du prøver å legge en boolean inn i en int.

int førsteTall = Integer.parseInt(førsteTallString);
int sum = (førsteTall % 3) == 0;//ikke lov

resultat = "";

if (førsteTall == sum)
resultat = resultat + førsteTall + " er delelig med 3";

if (førsteTall != sum)
resultat = resultat + førsteTall + " ikke delelig med 3";

 

det du kan gjøre for å løse problemer er:

int førsteTall = Integer.parseInt(førsteTallString);

resultat = "";

if ((førsteTall % 3) == 0)
resultat = resultat + førsteTall + " er delelig med 3";
else
resultat = resultat + førsteTall + " ikke delelig med 3";

 

er par småtips til, ikke bruke æøå i variablenavn. les deg opp på if/if else/else.

 

Tusen takk for svar, det gikk å kjøre programmet nå. Er det sånn at man ikke kan legge == , <=, >=, != osv i int fordi de er boolean?

Begynte med java for noen dager siden så prøve bare å gjøre oppgaver med if fordi jeg har ikke kommet til else og if else ennå, men det du skrev virker logisk og lettere å skrive.

Endret av techn9e
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å
×
×
  • Opprett ny...