Meddelande

Du befinner dig just nu på en äldre version av Pluggakuten, gamla.pluggakuten.se. Nya Pluggakuten lanserades den 6 februari 2017 och du finner forumet på www.pluggakuten.se.

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 smile

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 tongue

 
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 tongue

 
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
 


Sidfot

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Powered by Mattecentrum
 |  Denna sida använder cookies |  Kontakta oss |  Feedback |