Meddelande
På gamla.pluggakuten.se kan du fortfarande läsa frågorna och svaren som ställts, men du kan inte skapa ett nytt konto eller nya trådar. Nya frågor och nytt konto skapar du på det nya forumet, välkommen dit!
Java if-sats
- Svansson
- Medlem
Offline
- Registrerad: 2014-04-10
- Inlägg: 111
Java if-sats
Hej,
Är nybörjare på programmering och riktigt dålig dessutom.
Vi jobbar i två klasser där man kan anropa metoder som skapar fönster och figurer. Sedan kan man flytta runt dem osv.
Har till uppgift:
"Skriv en metod public boolean prison(double fence) som flyttar figuren till origo om den är mer än fence pixlar från origo. Metoden skall returnera true om figuren flyttats, annars false."
Mitt lama försök:
public boolean prison(double fence) {
fence = 200;
int x = this.getXPos();
int y = this.getYPos();
//Pythagoras:
double d = Math.sqrt((x * x) + (y * y));
if (d>200) {
void moveTo(int 0, int 0); <-------- Felmeddelande "illegal start of expression"
System.out.print("True");
}
else { if (d<=200)
System.out.print("False");
} } <---------- Felmeddelande "Missing return statement"
Ja, även om jag skrev att mitt försök var lamt, så har jag ändå hållit på med det här och behöver vägledning. Om någon som är bättre på det här kan hjälpa mig reda ut hur jag ska ändra koden för att den ska bli korrekt är jag mycket tacksam
Senast redigerat av Svansson (2017-01-21 15:59)
- Henrik E
- Medlem
Offline
- Registrerad: 2015-09-22
- Inlägg: 3189
Re: Java if-sats
Du ska inte sätta fence=200 eftersom den som anropar metoden ger ett värde på fence. I anropet moveTo(0,0) ska du inte ha med void och int, dom finns bara med i metoddefinitionen. Du ska inte skriva ut något utan returnera true eller false.
- Svansson
- Medlem
Offline
- Registrerad: 2014-04-10
- Inlägg: 111
Re: Java if-sats
Henrik E skrev:
Du ska inte sätta fence=200 eftersom den som anropar metoden ger ett värde på fence. I anropet moveTo(0,0) ska du inte ha med void och int, dom finns bara med i metoddefinitionen. Du ska inte skriva ut något utan returnera true eller false.
Tack! Ja, det låter riktigt!
Problemet kvarstår dock med "missing return statement", måste alltså skriva return någonting(); före sista hakparentesen. Känns som att jag har provat allting och googlat som en idiot. Vill ju att den ska returnera True eller False (vilket jag ju redan skrivit in), samtidigt måste den returnera ett Booleskt uttryck? Jag är förvirrad
- Yngve
- Medlem
Offline
- Registrerad: 2015-09-13
- Inlägg: 2941
Re: Java if-sats
Om du har anropat moveTo ska du returnera True, annars ska du returnera False.
Nothing else mathers
- Svansson
- Medlem
Offline
- Registrerad: 2014-04-10
- Inlägg: 111
Re: Java if-sats
Yngve skrev:
Om du har anropat moveTo ska du returnera True, annars ska du returnera False.
Ja, jag kan bara komma på två sätt att göra det. Antingen skriva Return "True"(Booleskt tecken för eller)"False"
men det tecknet går ju inte att skriva in. Det andra sättet som jag provat är:
...
if (d>fence) {
moveTo(0,0);
System.out.print("True");
}
return "True";
else { if (d<=fence) <------------ Felmeddelande 'else' without 'if' ???
System.out.print("False");
}
return "False";
}
}
Ja, då får jag ett nytt felmeddelande som jag inte alls förstår, eftersom jag visst har ett if. Har även provat att lägga if() utanför hakparentesen samt att ta bort if() helt, utan framgång. Samtidigt tror jag att returnsatsen måste ligga mellan de två sista hakparenteserna?
Senast redigerat av Svansson (2017-01-21 18:35)
- Yngve
- Medlem
Offline
- Registrerad: 2015-09-13
- Inlägg: 2941
Re: Java if-sats
Pröva
if (d>fence) {
moveTo(0,0);
System.out.print("True");
return "True";
}
else {
System.out.print("False");
return "False";
}
Nothing else mathers
- Svansson
- Medlem
Offline
- Registrerad: 2014-04-10
- Inlägg: 111
Re: Java if-sats
if (d>fence) {
moveTo(0,0);
System.out.print("True");
return "True"; <-----incompatible types found : java.lang.String required: boolean
}
else {
System.out.print("False");
return "False"; <---- incompatible types found : java.lang.String required: boolean
}
Tack... Inget klagomål på "else without if" men... Hopplöst
- Svansson
- Medlem
Offline
- Registrerad: 2014-04-10
- Inlägg: 111
Re: Java if-sats
Har löst det så att den kompilerar nu. Tack så mycket för hjälpen!
- Yngve
- Medlem
Offline
- Registrerad: 2015-09-13
- Inlägg: 2941
Re: Java if-sats
Ja det ska vara
return true;
respektive
return false;
Dvs utan citationstecken.
Nothing else mathers