techn9e Skrevet 28. august 2011 Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av techn9e Lenke til kommentar
medisinOmsider Skrevet 28. august 2011 Del Skrevet 28. august 2011 Du prøver å lagre en boolean value i en int, det er det som er problemet. Lenke til kommentar
Abigor Skrevet 28. august 2011 Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av Abigor Lenke til kommentar
techn9e Skrevet 28. august 2011 Forfatter Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av techn9e Lenke til kommentar
Abigor Skrevet 28. august 2011 Del Skrevet 28. august 2011 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(); } Lenke til kommentar
techn9e Skrevet 28. august 2011 Forfatter Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av techn9e Lenke til kommentar
xaco Skrevet 28. august 2011 Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av xaco 1 Lenke til kommentar
techn9e Skrevet 28. august 2011 Forfatter Del Skrevet 28. august 2011 (endret) 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 28. august 2011 av techn9e Lenke til kommentar
xaco Skrevet 28. august 2011 Del Skrevet 28. august 2011 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? Ja, siden outputen de gir er true eller false.(en boolsk verdi) 1 Lenke til kommentar
techn9e Skrevet 28. august 2011 Forfatter Del Skrevet 28. august 2011 Da skjønner jeg det, takk! 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å