leere Konsoleneingabe

lukengda

Mitglied
Hallo zusammen! Ich möchte mit einem Scanner einen String füllen, wenn "a" -> mache das, wenn "b" -> mache dies. wenn NICHTS also "" also einfach nur mit return bestetigt wurde soll NICHTS passieren... Bis jetzt wartet er weiterhin auf eine Eingabe... Ich habe ein Forums-Thread gelesen(http://www.java-forum.org/hausaufgaben/91299-eingabe-uberpruefung.html)Ich konnte es aber leider noch nicht umsetzen.
Bitte hier einfügen:
Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 10.11.2010
  * @author Lukengda
  */
import java.util.Scanner;
public class test {

  public static void main(String[] args) {

  Scanner sc = new Scanner ( System.in );
  System.out.println("Wenn sie \"a\" oder \"b\" wählen wollen, dann machen sie dies, sonsten einfach bestätigen");
  String zahl = sc.next();
  System.out.println(zahl);
  }
}

Vielen Dank auch für kleine Tipps!

Lukengda
 

XHelp

Top Contributor
ich glaube nicht, dass er ein 2. mal auf die Eingabe wartet...
Du kannst ja jetzt
Code:
zahl
(warum auch immer eine Variable wo etweder a oder b drin ist "zahl" heißt) wie du möchtest auswerten:
[JAVA=16]
if (zahl.equals("a")) {
System.out.println("a wurde eingegeben");
}
[/code]
 

lukengda

Mitglied
in der Theorie klappt dies, in unserem Schulprogramm jedoch nicht:
Der Scanner in Zeile 84 wird jetzt einfach übersprungen!
Java:
/**
  *
  * SSD-Planer
  *
  * @version 1.1 vom 09.11.2010
  * @author Markus, Janis & Lukas
  */
import java.util.Scanner;
public class ssd_planer2 {

  public static void main(String[] args) {
  //Vorbereitung
    Scanner sc = new Scanner ( System.in );
    boolean beGesammt = false;
  do{
      //Variablendeklaration und -initialisierung
      System.out.println("+ + + + + + + + +Varaiblenabfrage+ + + + + + + + +\n");
      final int zeilengroesse = 100;
      int menueauswahl;
      System.out.print("Websiteanfragen: ");
      long websiteanfragen = sc.nextLong();
      System.out.print("Anzahl der Seitenaufrufe: ");
      long seitenanfragen = sc.nextLong();
      System.out.print("Durchschnittliche Serverzugriffe pro Tag: ");
      long serverzugriffe = sc.nextLong();
      System.out.print("Speicherdauer eines Log-Files [Tage]: ");
      long speicherdauer = sc.nextLong();
      long ergebnisF1;
      double ergebnisF2;
      System.out.print("Wie viele 100GB SSD-Speichermodule sind verfügbar? ");
      int anz100gb = sc.nextInt();
      System.out.print("Wie viele 250GB SSD-Speichermodule sind verfügbar? ");
      int anz250gb = sc.nextInt();
      System.out.print("Wie viele 400GB SSD-Speichermodule sind verfügbar? ");
      int anz400gb = sc.nextInt();
      final int groesse100 = 100;
      final int groesse250 = 250;
      final int groesse400 = 400;
      String weiter = "";
      boolean be = true;

      System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
      System.out.println("__________________________________________________\n");

    //Programmkopf
      System.out.println("**************************************************");
      System.out.println("** SSD-Planer Version: 1.0 BETA vom 08.11.2010  **");
      System.out.println("**************************************************\n\n");

    //Menue Ausgabe und Abfrage

      while (be){

        System.out.println("+ + + + + + + Auswahl der Funktionen + + + + + + +\n");
        System.out.println("Die Funktionen im Ueberblick: ");
        System.out.println(" #1: Berechnung der Größe eines Logfiles");
        System.out.println(" #2: Berechnung der Speicherkapazitaet fuer Logfiles");
        System.out.println(" #3: ");
        System.out.println(" #4: Berechnung des Aufbau des SSD-Speichermoduls mit Preisen");
        System.out.println(" #5: Programm beenden\n");

        System.out.print("Bitte waehlen Sie eine Funktion (1-4): ");
        menueauswahl = sc.nextInt();
        System.out.println();
        System.out.println("    Sie haben Funktion \"" + menueauswahl + "\" gewaehlt");
        System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
        System.out.println("__________________________________________________\n");

        //Die Punkte
        if (menueauswahl == 1) {
          System.out.println("+ + + + + + + + + + Funktion 1 + + + + + + + + + +\n"); //Berechnung der Größe eines Logfiles

          //Beschreibung
            System.out.println("Beschreibung");
            System.out.println("\nBenutzeranfragen pro Webseite: " + websiteanfragen);
            System.out.println("Seitenanzahl pro Besucherbesuch: " + seitenanfragen);

          //Berechnung
            ergebnisF1 = websiteanfragen * zeilengroesse * seitenanfragen;
            
          //Ausgabe
            System.out.println("\nGroesse des Log-File: " + ergebnisF1 + " [Byte]");
            System.out.println("Weiter mit beliebiger Eingabe, mit neuen Werten: \"N\", beenden mit \"B\"");
            weiter = sc.nextLine();

          System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
          System.out.println("__________________________________________________\n");
        }

        if (menueauswahl == 2) {
          System.out.println("+ + + + + + + + + + Funktion 2 + + + + + + + + + +\n"); //Berechnung der Speicherkapazitaet fuer Logfiles

          //Beschreibung
            System.out.println("Beschreibung");
            System.out.println("Groesse eines Log-Files: " + websiteanfragen * 100 * seitenanfragen + " [Byte]");
            System.out.println("Anzahl der Serverzugriffe: " + serverzugriffe);
            System.out.println("Dauer der Speicherung: " + speicherdauer);

          //Berechnung
            ergebnisF2 = ((websiteanfragen * serverzugriffe * speicherdauer));
            ergebnisF2 = ergebnisF2/1048576;

          //Ausgabe
            System.out.println("\nBenötigte Speicherkapazitaet fuer Log-Files: " + ergebnisF2 + " [MByte]");
            System.out.println("Weiter mit beliebiger Eingabe, mit neuen Werten: \"N\", beenden mit \"B\"");
            weiter = sc.next();
            System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
            System.out.println("__________________________________________________\n");
        }

        if (menueauswahl == 3) {
          System.out.println("+ + + + + + + + + + Funktion 3 + + + + + + + + + +\n");

          //Beschreibung

          System.out.println("");

          System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
          System.out.println("__________________________________________________\n");

        }


        if (menueauswahl == 4) {
          System.out.println("+ + + + + + + + + + Funktion 4 + + + + + + + + + +\n");
          //Beschreibung
            System.out.println("Beschreibung");
            System.out.println("\nAnzahl 100GB-Speichermodule: " + anz100gb);
            System.out.println("Anzahl 250GB-Speichermodule: " + anz250gb);
            System.out.println("Anzahl 400GB-Speichermodule: " + anz400gb);

          //Berechnung
            int preisges100 = anz100gb * groesse100;
            int preisges250 = anz250gb * groesse250;
            int preisges400 = anz400gb * groesse400;
            int preisges = preisges100 + preisges250 + preisges400;

          //Ausgabe
            System.out.print("Preis aller verfügbaren SSD-Speichermodulen: " + preisges + "[Euro]");
            System.out.println("Weiter mit beliebiger Eingabe, mit neuen Werten: \"N\", beenden mit \"B\"");
            weiter = sc.next();

          System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
          System.out.println("__________________________________________________\n");

        }

        if (menueauswahl == 5 || weiter.equals("B") || weiter.equals("b")){
          be= false;

        }
        if (weiter.equals("N") || weiter.equals("n")){
          be = false;
          beGesammt = true;
        }

    }
  } while (beGesammt);

  System.out.println("Das Programm wurde beendet");


}
}
 

Michael...

Top Contributor
Funktioniert normaler Weise:
Java:
public static void main(String[] args) {
	Scanner sc = new Scanner ( System.in );
	String line = "";
	System.out.println("Programmende mit: end");
	while(!line.equalsIgnoreCase("END")) {
		line = sc.nextLine();
		System.out.println("Eingabe [Laenge:" + line.length() + " Wert: " + line + "]");
	}
	System.out.println("Programm beendet!");
}
Ansonten klein anfangen und größere Umfänge in Methoden auslagern, das macht den Code leichter lesbar und Fehler besser auffindbar.
 

lukengda

Mitglied
Also, ich habe das Programm jetzt so weit zurück zerlegt, dass keine Schleifen und kein unnötiger code mehr drinne sitzt. ich bin jetzt hierrauf gestoßen: :rtfm:LINK Dort wurde das Problem "umgangen" durch die verwendung von
Java:
import java.util.Scanner;
public class ssd_planer2planen2 {

  public static void main(String[] args) {
  Scanner sc = new Scanner ( System.in );
  
  System.out.println("+ + + + + + + + + + Funktion 1 + + + + + + + + + +\n"); //Berechnung der Größe eines Logfiles

  //Variablendeklaration und -initialisierung
      System.out.println("+ + + + + + + + +Varaiblenabfrage+ + + + + + + + +\n");
      final int zeilengroesse = 100;
      int menueauswahl;
      System.out.print("Websiteanfragen: ");
      long websiteanfragen = sc.nextLong();
      System.out.print("Anzahl der Seitenaufrufe: ");
      long seitenanfragen = sc.nextLong();
      System.out.print("Durchschnittliche Serverzugriffe pro Tag: ");
      long serverzugriffe = sc.nextLong();

      long ergebnisF1;
      String weiter = "";
      boolean be = true;


          //Beschreibung
            System.out.println("Beschreibung");
            System.out.println("\nBenutzeranfragen pro Webseite: " + websiteanfragen);
            System.out.println("Seitenanzahl pro Besucherbesuch: " + seitenanfragen);

          //Berechnung
            ergebnisF1 = websiteanfragen * zeilengroesse * seitenanfragen;

          //Ausgabe
            System.out.println("\nGroesse des Log-File: " + ergebnisF1 + " [Byte]");
            System.out.print("Weiter mit beliebiger Eingabe, mit neuen Werten: \"N\", beenden mit \"B\": ");
            weiter = sc.nextLine();

          System.out.println("\n+ + + + + + + + + + + + ++ + + + + + + + + + + + +");
          System.out.println("__________________________________________________\n");


  }
}
oder mit while
[JAVA=37]while(!weiter.equalsIgnoreCase("END")) {
weiter = sc.nextLine();
}[/code]
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Heißt dass, dass sich deine ùrsprüngliche Frage erledigt hat? Oder hast du einfach vergessen die Frage hinzuschreiben?
 

lukengda

Mitglied
Sorry, hab die Frage vergessen... Er überspringt jetzt mit dem gekürzten Code den Scanner wieder... Es ist das selbe Problem wie in dem obigen Link beschreiben, jedoch kann ich den Lösungsansatz nicht verwenden, da ich ja nextLine verwenden muss...
Aber das Problem ist das selbe. Stichwort EOL/End Of Line würde ich behaupten wenn ich es besser wüsste.. Entschuldigung für meine doofen Fragen ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
KaffeeFan FileWriter nur leere Zeilen beschreiben Allgemeine Java-Themen 3
R Leere Verzeichnisse löschen Allgemeine Java-Themen 11
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
127.0.0.1 StringBuffer leere Zeile löschen Allgemeine Java-Themen 8
T Drucken von variabel langen Listen (es kommen nur leere Seiten raus) Allgemeine Java-Themen 2
nrg Leere Objektreferenz mit != null vergleichen Allgemeine Java-Themen 4
G POI: Leere Zelle nimmt keinen Type an Allgemeine Java-Themen 8
R ANT Jar Task soll leere Verzeichnisse ignorieren..? Allgemeine Java-Themen 3
G Leere Datei mit PrintWriter trotz flush und close Allgemeine Java-Themen 8
E JExcel- Zugriff auf leere Zellen kommt eine Fehlermeldung Allgemeine Java-Themen 6
G Leere Fenster (Keine Schrift, Reiter/ Buttons) bei Java Allgemeine Java-Themen 5
V Class Document seltsam leere Zeile am Anfang Allgemeine Java-Themen 8
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
B wie behandelt man leere textfelder Allgemeine Java-Themen 11
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
W Konsoleneingabe Allgemeine Java-Themen 2
A Konsoleneingabe mit Eclipse Allgemeine Java-Themen 7
G Konsoleneingabe: vordefinierte werte setzen? geht das? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben