Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Verständnis-Fragen Java
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Verständnis-Fragen Java
 
Autor Nachricht
sabrinak
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 26.01.2009
Beiträge: 8

BeitragVerfasst am: 10 Feb 2009 - 21:37:07    Titel: Verständnis-Fragen Java

Hallo,
ich beschäftige mich seit neusten mit Java. hab mir mal eine quellcode einer aufgabe angeguckt, habs auch verstanden, aber hab paar verständnisfragen.
(im programm werden die Klammern gezählt, die der benutzer eingibt)
hier ist der quellcode:
Code:

import java.util.Scanner;

public class Klammer
{
   public static void main(String args[])
   {
      Scanner sc = new Scanner(System.in);
      
      int klammern = 0;
      int anzahlAuf = 0;
      int anzahlZu = 0;
      
      System.out.println("Bitte klammerfolge eingeben: ");
      String input = sc.next();
   
      for (char x: input.toCharArray())
      {
         if (x=='(')
         {
            anzahlAuf++;
            klammern++;
         }
         if (x==')')
         {
            anzahlZu++;
            klammern--;
         }
         if (klammern < 0)
         {
            System.out.println("Fehlerhafte Klammerung");
            System.out.println("Klammer geschlossen ohne geöffnet");
            System.exit(1);
         }
      }
      if (anzahlAuf == 0 && anzahlZu == 0)
      {
         System.out.println("Keine Klammer eingegeben");
         System.exit(1);
      }
      if (klammern == 0)
      {
         System.out.println("Klammerung in Ordnung.");
         System.out.println("Anzahl geöffnete Klammern: "+anzahlAuf);
         System.out.println("Anzahl geschlossener Klammern: "+anzahlZu);
      }
      if (klammern > 0)
      {
         System.out.println("Nicht alle geöffnete Klammern geschlossen.");
         System.out.println("Anzahl geöffnete Klammern: "+anzahlAuf);
         System.out.println("Anzahl geschlossener Klammern: "+anzahlZu);
      }
   }
}


meine frage:
was genau passiert hier?
Code:

for (char x: input.toCharArray())

und warum stehen bei if-anweisungen System.exit(1)
Code:

if (klammern < 0)
         {
            System.out.println("Fehlerhafte Klammerung");
            System.out.println("Klammer geschlossen ohne geöffnet");
            System.exit(1);
         }




vielen dank...
skizZ
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 01.11.2006
Beiträge: 461
Wohnort: Darmstadt

BeitragVerfasst am: 10 Feb 2009 - 22:03:16    Titel:

Also wenn ich das richtig sehe, dann wird durch

Code:

for (char x: input.toCharArray())


einfach die eingegebene Zeichenfolge einzeln durchgegangen.
Also für jedes eingegebene Zeichen wird die Schleife durchlaufen.

Mit
Code:
if (klammern < 0)
         {
            System.out.println("Fehlerhafte Klammerung");
            System.out.println("Klammer geschlossen ohne geöffnet");
            System.exit(1);
         }


Wird die Anwendung vorzeitig beendet. Erst werden 2 Meldungen rausgeworfen, dann wird das Programm beendet.
m0ta
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 12.10.2005
Beiträge: 75

BeitragVerfasst am: 10 Feb 2009 - 22:05:01    Titel: Re: Verständnis-Fragen Java

sabrinak hat folgendes geschrieben:

meine frage:
was genau passiert hier?
Code:

for (char x: input.toCharArray())

Es wird über jedes Element iteriert und ihm den Namen 'x' gegeben.

sabrinak hat folgendes geschrieben:

und warum stehen bei if-anweisungen System.exit(1)
Code:

if (klammern < 0)
         {
            System.out.println("Fehlerhafte Klammerung");
            System.out.println("Klammer geschlossen ohne geöffnet");
            System.exit(1);
         }

Um das Programm zu beenden.
sabrinak
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 26.01.2009
Beiträge: 8

BeitragVerfasst am: 10 Feb 2009 - 22:12:09    Titel:

hat die 1 im klammer bei System.exit eine bedeutung oder muss da immer eine 1 stehen?
just_phil
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 23.08.2008
Beiträge: 1006

BeitragVerfasst am: 10 Feb 2009 - 23:49:09    Titel:

nicht zwingend, aber die konvention besagt, dass man bei einem erfolgreichen ende des programmes eine 0 als rückgabewert liefert, positive ganze zahlen wie die 1 drücken einen konkreten fehler aus. das bleibt aber wie gesagt dir überlassen, wie du das am liebsten handhabst.

Zuletzt bearbeitet von just_phil am 10 Feb 2009 - 23:50:22, insgesamt einmal bearbeitet
wima_typ
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 27.11.2006
Beiträge: 1086

BeitragVerfasst am: 10 Feb 2009 - 23:49:25    Titel:

Das ist der Exit-Status. Den kann man je nach Betriebssystem irgendwie abfragen. "echo $?" ist es bei Linux, glaub ich.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Verständnis-Fragen Java
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum