Gå til innhold

[Løst] Hva er feil her?


Anbefalte innlegg

Hei! :)

 

Dette programmet skal ende opp med å skrive ut resultatet av 2013 minus året bruker skriver inn. Men jeg får kompileringsfeil vedr. bruken av minus operatoren. Hvis jeg setter inn + i stedet, så ser det ut som den regner en av variablene som en streng, da den gir meg 2013XXXX (hvor XXXX er året bruker skriver inn).

 

Noen som ser hva som er feil her? :)

 

RnZzRldm.jpeg

Lenke til kommentar
Videoannonse
Annonse

 

Sett en parentes rundt dagens_år - år.

JOptionPane.showMessageDialog(null, "Hei " + navn + ", du fyller " + dagens_år - år);

til

JOptionPane.showMessageDialog(null, "Hei " + navn + ", du fyller " + (dagens_år - år));

Takk så mye! :)

Lenke til kommentar

Nytt problem.. :)

Dette programmet skal dele antall sekunder brukeren taster inn på 60, for å få et desimaltall for antall minutter. Programmet kjører, men gir meg svaret 0.0 uansett hvor mange sekunder man taster inn... Testet både med og uten parentes rundt verdien til variabelen "minutter".

 

Noen ide? :)

post-69907-0-32648100-1377204503_thumb.png

Lenke til kommentar

Hva er det egentlig som bestemmer når man skal bruke parentes ved en regneoperasjon?

Trengte det tydeligvis på første spørsmål, men ikke på det andre.

Parenteser trengs utelukkende for å løse tvetydighet.

 

Hva er svaret på 3 * 2 + 4 - 1?

Endret av Lycantrophe
Lenke til kommentar

Tenk litt på det:

 

hvis navn er "Donald Duck" og dagens_år er 1999 og år er 27 så evalueres det fra venstre mot høyre sånn:

"Hei " + navn + ", du fyller " + dagens_år - år

"Hei Donald Duck, du fyller " + dagens_år - år

"Hei Donald Duck, du fyller 1999" - år

 

Og da får du feilmelding, for du kan ikke trekke et tall fra en streng.

Lenke til kommentar

sikkert fordi du mellomlagrer, bildr.no er kjent for å ekstremkomprimere bilder etterhvert, derbruk BRUK ALDRI BILDR.NO :)

 

Aha, da vet man det :)

 

Parenteser trengs utelukkende for å løse tvetydighet.

 

Hva er svaret på 3 * 2 + 4 - 1?

 

True that :blush:

 

Tenk litt på det:

 

hvis navn er "Donald Duck" og dagens_år er 1999 og år er 27 så evalueres det fra venstre mot høyre sånn:

"Hei " + navn + ", du fyller " + dagens_år - år

"Hei Donald Duck, du fyller " + dagens_år - år

"Hei Donald Duck, du fyller 1999" - år

 

Og da får du feilmelding, for du kan ikke trekke et tall fra en streng.

 

Da ble det absolutt meget forståelig :)

Lenke til kommentar

Ja, men ikke om man mente 3 * (2+4) - 1 :--) Og hva med et bedre eksempel som ikke faktisk blir riktig om man alltid binder til høyre.

 

4 + 2 * 3 - 1

 

Vi kan gjøre det mer spennende og blande inn overloading.

 

String result = "Result: " + 3 + 4 + "!";

 

---

 

Edit: Og det er klart er tvetydig. Men vi har assosiativitetsregler nettopp slik at det ikke skal være det; altså at parsingen skal mappes mot slik notasjonen brukes i matematikken.

Endret av Lycantrophe
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...