Abend.
Im 20. Kapitel bei gailer-net.de soll man ein Programm schreiben, das einem Zahlenschloss ähnelt. Und man ein solches da angefertigt :
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 ?
Entschuldigung, dass das soviel Code ist
danke danke
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