Programm verkürzen

.maik.

Bekanntes Mitglied
Abend.
Im 20. Kapitel bei gailer-net.de soll man ein Programm schreiben, das einem Zahlenschloss ähnelt. Und man ein solches da angefertigt :
Java:
import java.io.*;

class Zahlenschloss
{
  public static void main( String[] args ) throws IOException
  {
    int ersteZahl  =  6,
        zweiteZahl = 12,
        dritteZahl = 30;
    int zahl;

    BufferedReader stdin = new BufferedReader(
        new InputStreamReader( System.in ) );
    String input;

    int     versuch  = 0;
    boolean offen    = false;

    while ( versuch < 3 && !offen )
    {
      //Versuch einer Kombination, wenn richtig Variable offen auf true setzen

      boolean korrekt =  true;

      //Erste Zahl
      System.out.println("\nGeben Sie die erste Zahl ein: ");
      input = stdin.readLine();
      zahl  = Integer.parseInt( input );

      if ( zahl != ersteZahl )
        korrekt = false ;

      //Zweite Zahl
      System.out.println("Geben Sie die zweite Zahl ein: ");
      input = stdin.readLine();
      zahl  = Integer.parseInt( input );

      if ( zahl != zweiteZahl )
        korrekt = false  ;

      //Dritte Zahl
      System.out.println("Geben Sie die dritte Zahl ein: ");
      input = stdin.readLine();
      zahl  = Integer.parseInt( input );

      if ( zahl != dritteZahl )
        korrekt = false  ;

      //Ergebnis
      if ( korrekt )
      {
        System.out.println("Das Schloss oeffnet sich.");
        offen = true;
      }
      else
        System.out.println("Das Schloss bleibt zu.");

      versuch = versuch + 1;
    }

  }
}

Jetzt war die Aufgabe : Das Programm könnte ohne if-Anweisungen geschrieben werden. Es könnte nur eine einzige while-Anweisung benutzen, die einen ziemlich komplizierten booleschen Ausdruck überprüft. Der Benutzer würde alle drei Zahlen eingeben, bevor sie überprüft werden.

Ich kriege das aber irgendwie nicht ohne if Anweisungen hin . Kann man mein Programm jetzt noch verlürzen ?
Java:
import java.io.*;
class Zahlenschloss
{
  public static void main(String[] args) throws IOException
  {
    BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
    
    int ersteZahl = 15, 
        zweiteZahl = 1,
        dritteZahl = 95,
        durchgang = 1;
    String indata;
    int testOne = 1, testTwo = 1, testThree= 1;
    boolean geschlossen = true;
        
    while(durchgang <= 3 && geschlossen)
    {
    System.out.println("Enter the first integer!");
    indata = userIn.readLine();
    testOne = Integer.parseInt(indata);

    System.out.println("Enter the second integer!");
    indata = userIn.readLine();
    testTwo = Integer.parseInt(indata);

    System.out.println("Enter the third integer!");
    indata = userIn.readLine();
    testThree = Integer.parseInt(indata); 

    durchgang = durchgang + 1;
    if(testOne == 15 && testTwo == 1 && testThree == 95)
    geschlossen = false;
    }  
    if(!geschlossen)
    System.out.println("The key is unlocked.");
    else
    System.out.println("The key is still locked."); 
  }
}

Entschuldigung, dass das soviel Code ist :)
danke danke
 

XHelp

Top Contributor
Java:
geschlossen = !(testOne == ersteZahl && testTwo == zweiteZahl && testThree == dritteZahl);
Aber du könntest den Ausdruck auch direkt in die while-Abfrage packen.
 
G

guest@05122010

Gast
Etwas kompakter, allerdings mit einer if-Abfrage und ungetestet:
Java:
import java.io.*;
class Zahlenschloss {
    public static int readInteger(String text, BufferedReader reader) throws IOException {
        System.out.println(text);
        return Integer.parseInt(userIn.readLine());
    }

    public static void main(String[] args) throws IOException {
        BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
        int ersteZahl = 15, zweiteZahl = 1, dritteZahl = 95, durchgang = 1;
        
        while(durchgang <= 3 && ersteZahl!=readInteger("Enter the first integer!") && zweiteZahl!=readInteger("Enter the second integer!") && dritteZahl!=readInteger("Enter the third integer!")) {
        System.out.println("The key is still locked.");
        durchgang = durchgang + 1; 
    }
    if (durchgang>3)
        System.out.println("Key will stay locked after three time invalid input!");
    else
        System.out.println("The key is unlocked.");
}
 
G

guest05122010

Gast
Fehler erst nach dem posten gemerkt :-(
Java:
import java.io.*;
class Zahlenschloss {
    public static int readInteger(String text, BufferedReader reader) throws IOException {
        System.out.println(text);
        return Integer.parseInt(reader.readLine());
    }
 
    public static void main(String[] args) throws IOException {
        BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
        int ersteZahl = 15, zweiteZahl = 1, dritteZahl = 95, durchgang = 1;
        
        while(durchgang <= 3 && ersteZahl!=readInteger("Enter the first integer!", userIn) && zweiteZahl!=readInteger("Enter the second integer!", userIn) && dritteZahl!=readInteger("Enter the third integer!", userIn)) {
        System.out.println("The key is still locked.");
        durchgang = durchgang + 1; 
    }
    if (durchgang>3)
        System.out.println("Key will stay locked after three time invalid input!");
    else
        System.out.println("The key is unlocked.");
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Problem beim Verkürzen von Programm Java Basics - Anfänger-Themen 3
J Zwischenablage ist nach Programm beenden leer Java Basics - Anfänger-Themen 9
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
tomzen Programm ignoriert in der Ausführung Code Java Basics - Anfänger-Themen 8
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
A Programm Histogram Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
CT9288 Interaktion mit laufendem Programm -Fachbegriffe Java Basics - Anfänger-Themen 2
Gaudimagspam Assertions im Programm hinzufügen Java Basics - Anfänger-Themen 4
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
K Programm stoppt einfach ohne Grund Java Basics - Anfänger-Themen 4
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben