Avatar billede bobiboblolo Nybegynder
28. marts 2011 - 15:01 Der er 9 kommentarer og
1 løsning

Jeg kan ikke finde ud af hvorfor jeg ikke må lave en "else "mere?

myndighed;


public class Main {


    public static void main(String[] args) {
    System.out.println("Hvad må jeg?");
    System.out.println("Indtast din alder efterfulgt af Enter");
    java.util.Scanner tastatur = new java.util.Scanner(System.in);
    int alder, Kørekort, UdAf9,genstart;
    genstart=1;
    alder=tastatur.nextInt();
    while (genstart>0)
    {
      if (alder<=2) System.out.println("Du må skrige dagen lang:");
      else if (alder<=7)System.out.println("Du må lege hele dagen");
      else if (alder<=10) System.out.println("Du skal lave dine lektier");
      else if (alder<=14) System.out.println("Du må ikke en skid");
      else if (alder>=70) System.out.println("Du må sove mega længe og spille banko");
      else if (alder>=50)System.out.println ("Du må det som du plejer");
      else if (alder>=40)System.out.println("Du må give dine børn flere lommepenge");
      else if (alder>=30)System.out.println("Ingen kommentar");
      else if (alder>=22)System.out.println("Du bliver sikkert snart anholdt");
      else if (alder>=18)
      {  System.out.println("Indtast 1 vis du har kørekort og 2 vis du ikke har, efterfulgt af Enter");
        Kørekort=tastatur.nextInt();
        if (Kørekort==1) System.out.println("Du må køre i bil");
        else System.out.println ("Du må ikke køre bil");
      }



   
      else if (alder >= 15) System.out.println("Er du gået ud af 9, tast 1 for ja og 2 for nej");
       
        {
            UdAf9 = tastatur.nextInt();
          if (UdAf9==1) System.out.println("Du må arbejde mere end 2 timer i hverdagene.");
          else System.out.println ("Du må sove længe og slappe af");
        }
   
     
        [{else}] System.out.println("Du har ret til at virke omtumlet,råbe og skrige som en sindsyg,gøre hvad det passer dig for det er jo ikke din skyld at du er teenager.");

        System.out.println("tast 1 for at prøve igen, tast 0 for at stoppe");
        genstart=tastatur.nextInt ();

           
    }
    }
    }




[{det er denne else jeg mener den som er markeret i denne boks}]
Avatar billede erikjacobsen Ekspert
28. marts 2011 - 15:06 #1
Fordi den ikke har nogen if at høre sammen med. Naturligvis ;) ;)

Hvis du kigger på de to linier lidt længere oppe:

      else if (alder >= 15) System.out.println("Er du gået ud af 9, tast 1 for ja og 2 for nej");
     
        {

så ser du at den { der står efter System.out.println-sætningen afslutter if-en, og starter en ny blok.
Avatar billede michael_stim Ekspert
28. marts 2011 - 15:08 #2
Man kan kun have en else pr if, men det ser det også ud til du har, men det er svært at overskue uden { og }.

while (genstart>0)
    {
      if (alder<=2){
        System.out.println("Du må skrige dagen lang:");
      }
      else if(....){
        .....
      }

OSV, så er det mere overskueligt.
Avatar billede heinzdmx Nybegynder
28. marts 2011 - 15:10 #3
Grund: Du har rod i dine if-else sætninger

public class Main
{
    public static void main(String[] args)
    {
        System.out.println("Hvad må jeg?");
        System.out.println("Indtast din alder efterfulgt af Enter");
        java.util.Scanner tastatur = new java.util.Scanner(System.in);
        int alder, Kørekort, UdAf9,genstart;
        genstart=1;
        alder=tastatur.nextInt();
        while (genstart>0)
        {
            if (alder<=2) System.out.println("Du må skrige dagen lang:");
            else if (alder<=7)System.out.println("Du må lege hele dagen");
            else if (alder<=10) System.out.println("Du skal lave dine lektier");
            else if (alder<=14) System.out.println("Du må ikke en skid");
            else if (alder>=70) System.out.println("Du må sove mega længe og spille banko");
            else if (alder>=50)System.out.println ("Du må det som du plejer");
            else if (alder>=40)System.out.println("Du må give dine børn flere lommepenge");
            else if (alder>=30)System.out.println("Ingen kommentar");
            else if (alder>=22)System.out.println("Du bliver sikkert snart anholdt");
            else if (alder>=18)
            { 
                System.out.println("Indtast 1 vis du har kørekort og 2 vis du ikke har, efterfulgt af Enter");
                Kørekort=tastatur.nextInt();
                if (Kørekort==1) System.out.println("Du må køre i bil");
                else System.out.println ("Du må ikke køre bil");
            } 
            else if (alder >= 15)
            {
                System.out.println("Er du gået ud af 9, tast 1 for ja og 2 for nej");
            }
           
            {
                UdAf9 = tastatur.nextInt();
                if (UdAf9==1)
                    System.out.println("Du må arbejde mere end 2 timer i hverdagene.");
                else
                    System.out.println ("Du må sove længe og slappe af");
            }
            else
            {
                System.out.println("Du har ret til at virke omtumlet,råbe og skrige som en sindsyg,gøre hvad det passer dig for det er jo ikke din skyld at du er teenager.");
                System.out.println("tast 1 for at prøve igen, tast 0 for at stoppe");
                genstart=tastatur.nextInt();
            }
        }
    }
}


Det er tydeligt at du i din sidste sætning har lavet rod og glemt at sætte { det rigtige sted.
Avatar billede bobiboblolo Nybegynder
28. marts 2011 - 16:07 #4
nu har jeg prøvet at opstille det lidt bedre, men jeg får stadig den samme error:




package myndighed;


public class Main {


    public static void main(String[] args) {
    System.out.println("Hvad må jeg?");
    System.out.println("Indtast din alder efterfulgt af Enter");
    java.util.Scanner tastatur = new java.util.Scanner(System.in);
    int alder, Kørekort, UdAf9,genstart;
    genstart=1;
    alder=tastatur.nextInt();
    while (genstart>0)
    {
      if (alder<=2) System.out.println("Du må skrige dagen lang:");
      else if (alder<=7)System.out.println("Du må lege hele dagen");
      else if (alder<=10) System.out.println("Du skal lave dine lektier");
      else if (alder<=14) System.out.println("Du må ikke en skid");
      else if (alder>=70) System.out.println("Du må sove mega længe og spille banko");
      else if (alder>=50)System.out.println ("Du må det som du plejer");
      else if (alder>=40)System.out.println("Du må give dine børn flere lommepenge");
      else if (alder>=30)System.out.println("Ingen kommentar");
      else if (alder>=22)System.out.println("Du bliver sikkert snart anholdt");
      else if (alder>=18)
          {
            System.out.println("Indtast 1 vis du har kørekort og 2 vis du ikke har, efterfulgt af Enter");
            Kørekort=tastatur.nextInt();
            if (Kørekort==1) System.out.println("Du må køre i bil");
            else System.out.println ("Du må ikke køre bil");
          }

      else if (alder >= 15)
          {
              System.out.println("Er du gået ud af 9, tast 1 for ja og 2 for nej");
          }

          {
          UdAf9 = tastatur.nextInt();
          if (UdAf9==1)
            System.out.println("Du må arbejde mere end 2 timer i hverdagene.");
          else
            System.out.println ("Du må sove længe og slappe af");
        }
        else
        {
              System.out.println("Du har ret til at virke omtumlet,råbe og skrige som en sindsyg,gøre hvad det passer dig for det er jo ikke din skyld at du er teenager.");
        {
              java.util.Scanner tastatur = new java.util.Scanner(System.in);
              int genstart=1;

              System.out.println("tast 1 for at prøve igen, tast 0 for at stoppe");
              genstart=tastatur.nextInt ();

        }
  }
  }
Avatar billede erikjacobsen Ekspert
28. marts 2011 - 19:56 #5
Prøv lige at lave lidt mønstergenkendelse - den måde du ordner >=18 er fin, så du skal bare gøre det sammen ved =>15.
Avatar billede heinzdmx Nybegynder
28. marts 2011 - 20:22 #6
Den er jo stadig gal:
else if (alder >= 15)
            {
                System.out.println("Er du gået ud af 9, tast 1 for ja og 2 for nej");
            }
            {
                UdAf9 = tastatur.nextInt();
                if (UdAf9==1) System.out.println("Du må arbejde mere end 2 timer i hverdagene.");
                else System.out.println ("Du må sove længe og slappe af");
            }
            else
            {
                System.out.println("Du har ret til at virke omtumlet,råbe og skrige som en sindsyg,gøre hvad det passer dig for det er jo ikke din skyld at du er teenager.");
                {
                    java.util.Scanner tastatur = new java.util.Scanner(System.in);
                    int genstart=1;
                    System.out.println("tast 1 for at prøve igen, tast 0 for at stoppe");
                    genstart=tastatur.nextInt ();
                }
            }


Prøv at se hvordan klapper ikke passer sammen. Derudover har du tilsat klapper i den sidste som ikke burde være der.
Avatar billede arne_v Ekspert
29. marts 2011 - 00:38 #7
Jeg antager at problemer er ved at vaere rimeligt velbeskrevcet.

Jeg vil dog lige pointere at de flinke mennesker hos SUN har skrevet en lille guide omkring kode stil inkl. indrykning og placering af parentser.

http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
Avatar billede bobiboblolo Nybegynder
12. april 2011 - 08:03 #8
Fandt selv ud af det forstod ikke jer.
Avatar billede michael_stim Ekspert
12. april 2011 - 09:32 #9
HVAD fandt du selv ud af?
Avatar billede bobiboblolo Nybegynder
12. april 2011 - 22:09 #10
At få fjernet else erroren
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester