Brauch kurz hilfe bei nem kleinem Zahlenschloss Programm. :)

Status
Nicht offen für weitere Antworten.

joni89

Mitglied
Und zwar gehts um das Programm:

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;
    }

  }
}

angeblich kann mans verkürzen, also die if anweisungen weglassen und stattdessen die while anweisung verlängern. allerdings komm ich nicht drauf, wie das funktionieren soll.. kann mir jemand helfen? :)
 

Marco13

Top Contributor
Besonders interessant wird's wenn du daraus jetzt ein Zahlenschloss mit 10 Ziffern machen willst :D

Als tipp:
Java:
int ersteZahl  =  6,
        zweiteZahl = 12,
        dritteZahl = 30;
--->
Java:
int zahlen[] = new int[] { 6, 12, 30 };

Den Rest findest du schon raus :)
 
S

SlaterB

Gast
du musst Gemeinsamkeiten/ Unterschiede in dem Code suchen,
du hast 3x fast den gleichen Code, nur muss der Ausgabetext erste/ zweite/ dritte lauten
und die Vergleichszahl ist immer eine andere,
sowas kann man mit Arrays/ Schleifen lösen,
Beispiel
Java:
public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hallo 0");
        System.out.println("Hallo 1");
        System.out.println("Hallo 2");
        System.out.println("Hallo 3");
        System.out.println("Hallo 4");
        System.out.println("--");
        for (int i = 0; i < 5; i++)
        {
            System.out.println("Hallo " + i);
        }
    }
}
 

joni89

Mitglied
Hm, das Problem is nur, dass in dem tutorial (Vollstndiges Programm)
noch nie arrays oder mehrere ints in einen tun vorkam, also is da wohl ne andere lösung gemeint. es heißt irgendwas von einfach komplizierteren boolearischen ausdruck ins while, und dafür keine if. weiß aber nicht, was ich da rein schreiben soll.. und vorallem so (nächster schritt), dass es nachher so funktionieren soll, dass es sich auch öffnet wenn man (höchstens) 2 niedriger oder 2 höher eingibt
also z.b. wenn die schluss nummern 6 20 und 24 sind man auch 4 22 und 25 eingeben könnte.
 

faetzminator

Gesperrter Benutzer
Schau dir das an:
Java:
import java.io.*;

class Zahlenschloss {
    public static void main(String[] args) throws IOException {
        int[] code = {6, 12, 30};

        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < 3; i++) {
            //Versuch einer Kombination, wenn richtig Variable offen auf true setzen
            boolean korrekt = true;
            for (int j = 0; j < code.length; j++) {
                System.out.println("Geben Sie die " + (j + 1) + ". Zahl ein: ");
                int zahl = Integer.parseInt(stdin.readLine());
                if (zahl != code[j]) {
                    korrekt = false;
                    break;
                }
            }
            //Ergebnis
            if (korrekt) {
                System.out.println("Das Schloss öffnet sich.");
                break;
            }
            System.out.println("Das Schloss bleibt zu.");
        }
    }
}
Da kannst du einfach int[] code vergrössern, in dem du in das Array mehrere Zahlen schreibst.
 

joni89

Mitglied
versteh ich soweit.

aber was bedeutet for, bzw was is da der unterschied zu while? und was das "j++"?
break kenn ich auch nicht..code.length kann ich mir vorstellen, kam aber auch nie vor.

würd das gern mit ner normalen while anweisung lösen, denke, die anderen sachen kommen dann schon noch irgendwann im tutorial. :)

also ich habs jetz mal so versucht, ohne die if anweisungen.

Java:
import java.io.*;

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

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

    int     versuch  = 0;
zahl1 = 0;
zahl2 = 0;
zahl3 = 0;

    while (versuch < 3 && zahl1 != ersteZahl && zahl2 != zweiteZahl && zahl3 != dritteZahl)
    {

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

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

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


      if (zahl1 == ersteZahl && zahl2 == zweiteZahl && zahl3 == dritteZahl)
{
      System.out.println("Das Schloss öffnet sich.");
}
	  else
{
	  System.out.println("Das Schloss bleibt zu.");
}
      versuch = versuch + 1;
    }

  }
}
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
also, die 3 Schleifentypen sind so aufgebaut:
Java:
while (bedingung) {
    doSomething();
}
Wird ausgeführt, so lange bedingung true ist
Java:
do {
    doSomething();
} while (bedingung);
Wir ein Mal sowieso ausgeführt, und dann solange bedingung true ist
Java:
for (eingang(); bedingung; durchgang()) {
    doSomething();
}
am Anfang wird eingang() ausgeführt, nach jedem Schleifendurchlauf durchgang() ausgeführt und für den nächsten Durchlauf bedingung geprüft.
 

joni89

Mitglied
@ radauer du verstehst mich falsch, ich wollte damit nur ausdrücken, dass ich das alles nicht versteh, also dass das alles im tutorial nicht vorkam und deswegn wohl ne andere lösung angedacht war.

aber danke trotzdem. :)
 

joni89

Mitglied
ich noch mal.. ^^

hab nun mit dem logischen denken, was ich zusammen bekommen hab (sehr anfängertechnisch) versucht, nen toleranzbereich von +-3 bei den eingaben einzubauen.
nur irgendwas funktioniert nicht, also wenn ich dann nen abweichenden bereich eingeb, gibts trotzdem aus, dass das schloss zu bleibt und ich komm nicht drauf, was es is.

hier das programm:

Java:
import java.io.*;

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

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

    int     versuch  = 0;

zahl1 = 0;
zahl2 = 0;
zahl3 = 0;


    while (versuch < 3 && (zahl1 > (ersteZahl +3) || zahl1 < (ersteZahl-3)) && (zahl2 > (zweiteZahl +3) || zahl2 < (zweiteZahl-3)) && (zahl3 > (dritteZahl +3) || zahl3 < (dritteZahl-3)))
    {

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

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

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


      if ((zahl1 <= (ersteZahl +3) && zahl1 >= (ersteZahl - 3)) && (zahl2 <= (zweiteZahl +3) && zahl2 >= (zweiteZahl - 3)) && (zahl3 <= (dritteZahl +3) && zahl3 >= (dritteZahl - 3)))
{
      System.out.println("Das Schloss öffnet sich.");
}
	  else
{
	  System.out.println("Das Schloss bleibt zu.");
}
      versuch = versuch + 1;
    }

  }
}

geht eben speziell um die if ()und while ()zeile.
 
Zuletzt bearbeitet:
L

lalalal123

Gast
ich würde das ja so machen ^^

package xxx;
import java.io.*;
public class xxxx {


public static void main(String[] args) throws IOException{

BufferedReader eingabe= new BufferedReader(new InputStreamReader(System.in));


int laufvariable;
int [] code= new int [6];
int [] vorgabe = {1,2,3,4,5,6};



int versuch = 0;
boolean offen = false;

System.out.println("Sie haben nur 3 Chancen");
while ( versuch < 3 && !offen)
{
boolean schloss = true;

for(laufvariable=0; laufvariable<=5; laufvariable++){

System.out.println("Bitte geben Sie den Code ein. Geben Sie die " +(laufvariable+1) +"te Stelle ein");

code [laufvariable]=Integer.parseInt(eingabe.readLine());

if (code[laufvariable]== vorgabe[laufvariable])
{
System.out.println("die "+(laufvariable+1) +"te Stelle ist Richtig");
}
else
{
System.out.println("Sie haben den Code falsch eingegeben");
schloss=false;
}
}
if (schloss==true){
System.out.println("Schloss offen");
offen=true;
}
else{

System.out.println("Das Schloss bleibt zu");
versuch = versuch + 1;}
}
}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Brauch Hilfe für Java Programm Java Basics - Anfänger-Themen 12
S Methoden Brauch Beispiele Java Basics - Anfänger-Themen 6
L Brauch Mittelwert jeweils 3 Zahlen die durch 20 Wiederholungen geteilt werden Java Basics - Anfänger-Themen 17
J Was brauch ich zum programmieren Java Basics - Anfänger-Themen 14
D brauch hillfe komm nicht mehr weiter... Java Basics - Anfänger-Themen 10
A Am Buch lesen, nun brauch ich eure Hilfe um mir super() zu erklären Java Basics - Anfänger-Themen 4
M Java Rätsel (Geocaching) - Brauch Hilfe dazu! Java Basics - Anfänger-Themen 15
M Was brauch ich alles für Java Programmieren Java Basics - Anfänger-Themen 14
F Komme aus der Delphi-Welt und brauch jetz Java. Java Basics - Anfänger-Themen 5
H Brauch bei programmierung von quiz unterstützung Java Basics - Anfänger-Themen 11
K brauch dringend Hilfe *.jar abänder Java Basics - Anfänger-Themen 2
M Brauch ich dazu clone()? Java Basics - Anfänger-Themen 5
S Brauch mal eure Hilfe . Java Basics - Anfänger-Themen 7
G Wieso brauch java keine main() Methode? Java Basics - Anfänger-Themen 20
N String.replace brauch mal Hilfe Java Basics - Anfänger-Themen 2
G Was brauch ich alles Java Basics - Anfänger-Themen 7
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
marcooooo Kann mir jemand das Beispiel kurz erklären so ungefähr:/ Java Basics - Anfänger-Themen 7
T Kann jemand kurz das Programm testen? Java Basics - Anfänger-Themen 13
M Threads Thread ist nur kurz interrupted, dann wieder nichtmehr Java Basics - Anfänger-Themen 6
K Programm ohne Threads kurz Pausieren Java Basics - Anfänger-Themen 4
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
S Kann mir jemand kurz die Vorteile des Iterators erklaeren..? Java Basics - Anfänger-Themen 8
manunana89 Programm kurz pausieren??? Java Basics - Anfänger-Themen 6
H Kann das mal kurz einer ausführen ^^ . thx Java Basics - Anfänger-Themen 10
G long zu kurz Java Basics - Anfänger-Themen 5
V Grafik ist nur ganz kurz sichtbar Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben