Variablen Frage zu einer Hausübung.

  • Themenstarter Themenstarter murgang
  • Beginndatum Beginndatum
M

murgang

Gast
Liebe Java-Programmer

Ich komme bei einer Hausübung nicht weiter. Und zwar hab ich ein kleine Programm gemacht, wo man einen 3-stelligen Pin eingeben muss. Wenn der Pin falsch ist, fragt er ein weiteres mal usw. (mit der while-Schleife). Jetzt muss ich aber programmieren, dass man max. 3 versuche hat. wenn man einmal versucht und falsch liegt, steht "Noch zwei versuche" . Wie kann ich dies machen?

import java.util.Scanner;

public class Pin
{

public static void main(String[] args) {
int a, b, c;

Scanner scanner = new Scanner(System.in);
boolean zustand;
zustand = false;

int versuche = 3; versuche--;
while ((zustand == false) && (versuche > 0))
{
versuche = 3; versuche--;
System.out.println("Bitte geben sie den 3 stelligen Pin ein!");
System.out.print("1. Ziffer: ");
a = scanner.nextInt();
System.out.print("2. Ziffer: ");
b = scanner.nextInt();
System.out.print("3. Ziffer: ");
c = scanner.nextInt();
System.out.println("Sie haben eingegeben: "+a+b+c);
if ((a == 0) && (b == 0) && (c == 7))
{
System.out.println("Offen");
zustand = true;
}


else
{
System.out.println("geschlossen." + " Noch " +versuche + " Versuche.");
}
}
}
}
 
Also wenn du weißt was dein Code macht, müsstest du es auch selber rauskriegen.
ZB. was wird in deiner Variablen 'versuche' abgelegt? Und was macht die Methode System.out.println(); ? Nur mal als denkanstoß...
 
Hallo also als erstes schreibt man den Code in die Java Tags. (Steht groß und fett über dem Antworten Feld).

Und dein Fehler ist offensichtlich: Immer wenn ein while-Schleifen-Durchlauf startet setzt du Versuche auf 3 und dekrementierst es dann auf 2. Ist doch offensichtlich das dass ne endlosschleife wird.

Hier der richtige Code:

Java:
public class Pin {
    public static void main(String[] args) {
        int a, b, c;

        Scanner scanner = new Scanner(System.in);
        boolean zustand;
        zustand = false;

        int versuche = 3; // Warum schon hier einen Versuch entfernen? (versuche--;)
        while ((zustand == false) && (versuche > 0)) {
            versuche--; // Hier habe ich "versuche = 3; " entfernt
            System.out.println("Bitte geben sie den 3 stelligen Pin ein!");
            System.out.print("1. Ziffer: ");
            a = scanner.nextInt();
            System.out.print("2. Ziffer: ");
            b = scanner.nextInt();
            System.out.print("3. Ziffer: ");
            c = scanner.nextInt();
            System.out.println("Sie haben eingegeben: "+a+b+c);
            if ((a == 0) && (b == 0) && (c == 7)) {
                System.out.println("Offen");
                zustand = true;
            }
            else {
                System.out.println("geschlossen." + " Noch " +versuche + " Versuche.");
            }
        }
    }
}

Und ansonsten: Willst du noch wissen wie man Tastatureingaben erkennt oder kannst du das alleine?
 
faustdonner: vielen Dank für deine Hilfe. Jetzt im Nachhinein hab ich es begiffen. Vielleicht solltest du noch wissen, dass ich erst seit ein paar Tagen Informatik habe. 😉 Und so etwas zu programmieren, ist nicht leicht für einen auf Feld 1. 😉 Gruss
 
Keine Sorge anfangs war ich auch son trottel 🙂. Habe mir aber alles selber beigebracht und bin jetzt bei der 3D-Programmierung 🙂.

Viel Spaß beim proggen 😉
 

Zurück
Oben