fout in prog

  • Onderwerp starter Onderwerp starter Yoki
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Yoki

Gebruiker
Lid geworden
8 dec 2003
Berichten
35
Ik moet een oef maken voor school maar hij slaat eenloop over en vindt het niet

Code:
public class DoItYourself2P14{
   public static void main(String arg[]){
      
      System.out.print("Geef je leeftijd : ");
      int Leeftijd = Console.readInt();
      
      System.out.print("Ben je werkloos (ja/nee) ? ");
      String WerkLoos = Console.readString();
      
      if (Leeftijd < 12){
         System.out.println("Lidgeld = GRATIS");
      }else if(Leeftijd >= 12 && Leeftijd <= 17){
         System.out.println("Lidgeld = € 5");
      }else if(Leeftijd > 17 && Leeftijd < 25){
         if (WerkLoos == "nee"){
            System.out.println("Lidgeld = € 20");
         }else{
            System.out.println("Lidgeld = € 10");
         }
      }else if (Leeftijd > 25){
         if (WerkLoos == "nee"){
            System.out.println("Lidgeld = € 30");
         }else{
            System.out.println("Lidgeld = € 20");
         }
      }
   }
}

Het probleem is dat als het prog in de if loop van WerkLoos komt het altijd de else zijde kiest ook als ik nee intyp
(Die Console.class is een bestand dat we van school hebben om gegevens te kunnen intypen.)
 
Ik zal het even anders gaan ordenen, dit t.b.v. de overzichtelijklheid
v.w.b. het gebruik v.d. accolades:

Je zult bemerken, dat daar de fout zit. Zo ontbreekt er bijvoorbeeld een
accolade onder een else statement. Omdat de code een even aantal
accolades bevat maakt de compiler/interpreter geen melding van fouten.

Code:
public class DoItYourself2P14
{
   public static void main(String arg[])
   {
      System.out.print("Geef je leeftijd : ");
      int Leeftijd = Console.readInt();
      System.out.print("Ben je werkloos (ja/nee) ? ");
      String WerkLoos = Console.readString();
      if (Leeftijd < 12)
      {
         System.out.println("Lidgeld = GRATIS");
      }
      else
      if(Leeftijd >= 12 && Leeftijd <= 17)
      {
         System.out.println("Lidgeld = € 5");
      }
      else
      if(Leeftijd > 17 && Leeftijd < 25)
      {
         if (WerkLoos == "nee")
         {
            System.out.println("Lidgeld = € 20");
         }
         else
         {
            System.out.println("Lidgeld = € 10");
         }
         }
         else
         if (Leeftijd > 25)
         {
            if (WerkLoos == "nee")
            {
               System.out.println("Lidgeld = € 30");
            }
            else
            {
               System.out.println("Lidgeld = € 20");
            }
         }
      }
}
 
Eigenlijk moet ik anders zeggen:
Je ziet 2 accolades onderelkaar staan, één ervan moet in elk geval helemaal beneden staan. Bestudeer dat maar even. (hoop dat ik het goed heb)

Dennis.
 
Je moet altijd een denkbeeldige lijn gaan trekken tussen de 2 paren accolades(boven en beneden). Als je kijt naar de 2 onderste accolades, dan zie je dat er een lege ruimte bestaat. Daar mis je een accolade. Die vul je aan met de accolade die bij € 10 staat(er staat daar dubbel). Eenmaal daar bij de lege ruimte geplaast, trek je een denkbeeldige lijn naar boven, die lijn raakt dan de 2e accolade van boven. Nu moet alles goed zijn.

Dennis.
 
die accolades van jouw staan op precies dezelfde plaats als die van mij maar anders geordend.

want nu werkt het prog nog altijd niet
hij blijft 10€ aangeven ook al zeg ik nee
 
Hoi,

Strings vergelijken doe je altijd met de functie 'equals()'.
Code:
if (WerkLoos.equals("nee")) {
  // code
}

:)
 
Merci dat was het idd

nu werkt het
merci

Greetz

Yoki
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan