if - Befehle

tinmi

Mitglied
Hallo,

ich programmiere gerade für die Schule ein kleines Login-Thema Programm!

Nun habe ich folgendes Problem: ich möchte, wenn alle Paramether erfüllt sind(username und password) eine weiterleitung auf die nächste Methode und wenn das nicht erfüllt ist wieder auf den Anfang zurück.

Hier mein Code:

Java:
package ex002;

import java.util.Scanner;
import javax.swing.JOptionPane;

public class BH {
    private String username;
    private String password;
    private int user, pass;
     
    public void login() {
        Scanner sc = new Scanner(System.in);
      
        username = JOptionPane.showInputDialog("Bitte geben Sie den Nutzernamen ein! (45)");      
        password = JOptionPane.showInputDialog("Bitte Nutzernamen eingeben (47)");         
        user = Integer.valueOf(username);
        pass = Integer.valueOf(password);
      
        if(user==45) {
            if(pass==47) {
                System.out.println("Login ist korrekt!");
            }
        } else {
            System.out.println("Bitte nochmals versuchen!");
        }
    }
  
    public static void main(String[] args) {
        BH t = new BH();
        t.login();
    }
  
}

ich hoffe ihr könnt mir helfen!

lg
michi
 
Zuletzt bearbeitet von einem Moderator:

Tobse

Top Contributor
Und jetzt? Wo kommst du nicht weiter? Ich sehe auf Anhieb, dass dieser Code mindestens 4 Compilerfehler verursacht.
 

Tarrew

Top Contributor
Also wo Tobse die Compilerfehler sieht ist mir jetzt nicht genau klar. Die fehlende Fehlerüberprüfung beim Integer.valueOf ist jetzt das einzige was mir auffällt, aber kompilieren tut auch so alles ohne Probleme.

Mit einer do-while Schleife könntest du das relativ gut machen:
Java:
    public void login()
    {
        Scanner sc = new Scanner(System.in);
        do{
        System.out.println("Bitte Daten eingeben");
     
        username = JOptionPane.showInputDialog("Bitte geben Sie den Nutzernamen ein! (45)");
     
        password = JOptionPane.showInputDialog("Bitte Nutzernamen eingeben (47)");
     
     
        user = Integer.valueOf(username);
        pass = Integer.valueOf(password);
      
        }while(!(user==45 && pass==47));
        System.out.println("Login ist korrekt");
    }

Damit durchläufst du den "do-Teil" so oft bis die richtigen Daten eingegeben wurden.
 

Tobse

Top Contributor
Das mit den Kompilerfehlern war mist, sorry :S Hatte nicht gesehen dass username und password als Instanzvariablen deklariert waren - bin deshalb davon ausgegangen, dass der Kompiler wegen fehlender Deklaration meckert.

Das Do-While macht Sinn, ich habe aber noch nicht ganz verstanden, was der TE erreichen wil :/ "weiterleitung" auf eine andere Methode?
 

clownsmobil

Mitglied
  1. Die sc-Variable ist unnötig - die wird nirgends verwendet
  2. Nutze parseInt anstelle von valueOf und deine Compilerfehler verschwinden
  3. Der ansatz mit der do-while ist nicht schlecht. Hier fehlt es aber imho noch an einer Abbruchbedingung. Wenn der Benutzer die Zugangsdaten nicht kennt, dann will er dieses auch irgendwann mal beenden können.
 

tinmi

Mitglied
@clownsmobil,

denn 3den Punkt den du ansprichst finde ich eine gute Idee!

Hättest du vielleicht einen Vorschlag wie ich das Umsätzen könnte?

Das ist der aktuelle Code
Java:
package ex002;

import java.util.Scanner;
import javax.swing.JOptionPane;

public class BH {
   private String username;
   private String password;
   private int user, pass;

   private String datum;
   private String bk;

   public void login() {
     Scanner sc = new Scanner(System.in);
     boolean bedingung = true;
     while(bedingung) {   
       username = JOptionPane.showInputDialog("Bitte geben Sie den Nutzernamen ein! (45)");
       password = JOptionPane.showInputDialog("Bitte Nutzernamen eingeben (47)");   
       user = Integer.valueOf(username);
       pass = Integer.valueOf(password);   
       if(user==45) {
         if(pass==47) {
           JOptionPane.showMessageDialog(null, "Login erfolgreich!");
           bedingung = false;
         }
       } else {
         JOptionPane.showMessageDialog(null, "Bitte erneut versuchen!");
         bedingung = true;
       }
     }
   }

   public void input() {
     datum = JOptionPane.showInputDialog("Datum");
     bk = JOptionPane.showInputDialog("Kassa(0) oder Bank(1)");
   }

   public static void main(String[] args) {
     BH t = new BH();
     t.login();
     t.input();
   }  
}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben