1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. Keeper

Beiträge von Keeper

  • Abbruch des Scanners bei fehlender Eingabe

    • Keeper
    • 11. November 2009 um 20:55

    So Leute, jetzt hat es funktioniert!
    Der Code war die ganze Zeit richtig, nur muss man diese Testdatein die bei den Beispielen dabei sind einlesen! Dachte die sind nur nettes Beiwerk...

    Also danke für eure Hilfe, hab ein paar Sachen gelernt.
    Man sieht sich ja vielleicht :wave:
    MfG Michael

  • Abbruch des Scanners bei fehlender Eingabe

    • Keeper
    • 11. November 2009 um 17:32
    Zitat von vinkulja6

    length gibt es schon bei java, nur wird es meiner meinung nach nicht bei dem Beispiel nötig sein, mann kann es auch anders lösen siehe unten.

    @ keeper

    versuch mal nach jeder falschen eingabe ein break einzubauen.

    das boolean lass mal weg.

    um auf das problem mit fehlenden operator zurück zukommen shaut das dann ungefähr so aus

    Code
    if(reader.hasNext())
      operator = reader.next();
      else
      {
        System.out.println("FALSCHE EINGABE");
        break;
      }

    Wenn ich es mit break mache kommt immer die Fehlermeldung: break outside switsch or loop
    Ich glaube das break geht nur in einer while Schleife.
    trotzdem Danke

    MfG Micahel

  • Abbruch des Scanners bei fehlender Eingabe

    • Keeper
    • 11. November 2009 um 16:32
    Zitat von Mythos

    Mir ist nur nicht klar was er für einen Fall hier abfangen will.
    Hast du maximal 3 Elemente bei der Eingabe?
    wenn ja frag doch einfach die länge des scanners ab und wenn != 3 oder >3 -> Falsche eingabe

    Ja ,es sollen maximal 3 Elemente sein. Wie frag ich die Länge des Scanners ab?

    MfG Michael

  • Abbruch des Scanners bei fehlender Eingabe

    • Keeper
    • 11. November 2009 um 15:41
    Zitat von Mythos
    Code
    if (reader.hasNext())
      Zeichen=reader.next().charAt(0); 
    else
      System.out.println("Falsche Eingabe");



    würde ja reichen wenn du schaust ob noch ein Element vorhanden ist.

    Hab ich schon so versucht, aber der Wartet immer noch auf eine Eingabe.

    Zitat von sutupud

    um die eingabe zu beenden, musst du strg+d (strg+z unter windows) eingeben!
    Scanner.next() reagiert nämlich nicht auf whitespace oder zeilenumbrüche.

    Das Problem ist aber, dass bei der Abgabe keiner Strg d drückt, weil das ja automatisiert kontrolliert wird.
    Hab es schon mal abgegeben und 1.08 von 1.2 Punkten bekommen. Es fehlt halt nur noch der Fall einer fehlenden Eingabe.

    Ich hoffe nicht, dass ich mich in eine "Einbahn" programmiert habe und es für meinen Fall keine Lösung gibt.:(

    Trotzdem Danke für die Beteiligung.

    MfG Michael

  • Abbruch des Scanners bei fehlender Eingabe

    • Keeper
    • 11. November 2009 um 14:53

    Hallo!
    Bin gerade im 1.Semester:wave:. Hab das Prgoramm für die erste Übungsrunde (hab den Taschenrechner bekommen) gemacht. Es Funktioniert auch alles , bis auf das der Scanner immer darauf wartet das die komplette Eingabe(also Zahl1 Zahl2 Rechenzeichen) gemacht wird.
    Es soll aber bei fehlen einer Eingabe(also nur 2 1 statt 2 1 +) die Fehlermeldung "Falsche Eingabe" ausgegeben werden.
    Hab schon einiges Versucht und auch im Internet gesucht, hab aber nichts passendes gefunden.:wein:

    Hoffe es hat jemand eine Lösung dafür.


    Hier mal mein Programm:


    //Zum Testen zuerst Zahl1 dann Abstand dann Zahl2, Abstand und am Ende das Rechenzeichen eingeben!!!

    import java.util.Scanner;

    public class Calculator {
    public static void main(String[]args){
    int Zahl1;
    int Zahl2;
    char Zeichen; //Rechenzeichen
    int Ergebnis=0;
    boolean bol; //Wird dieser False wird dieFehlermeldung "FALSCHE EINGABE" ausgegeben.
    Zahl1=0;
    Zahl2=0;

    bol=true; //ein false bei dieser Variable führt zu Fehlermeldung


    Scanner reader=new Scanner(System.in);

    if(reader.hasNextInt()) {
    bol=true;
    Zahl1=reader.nextInt();
    }else{
    bol=false;
    }
    if(reader.hasNextInt()) {
    bol=true;
    Zahl2=reader.nextInt();

    }else{
    bol=false;
    }


    Zeichen=reader.next().charAt(0); Hier muss wohl angesetzt werden um das Problem zu beheben!


    if((Zeichen=='+')||(Zeichen=='-')||(Zeichen=='*')||(Zeichen=='/')) {
    }else{ bol=false;
    }

    if(Zeichen=='+'){
    Ergebnis=Zahl1+Zahl2;
    }
    if(Zeichen=='-'){
    Ergebnis=Zahl1-Zahl2;
    }
    if(Zeichen=='*'){
    Ergebnis=Zahl1*Zahl2;
    }
    if(Zeichen=='/'){
    if((Zahl2>0)||(Zahl2<0)){
    Ergebnis=Zahl1/Zahl2;
    }else{

    bol=false;
    }
    }

    if(bol==true){

    System.out.println(Ergebnis);


    }else{ System.out.println("FALSCHE EINGABE");
    }
    }
    }


    Mfg Michael

Rechtliches

Impressum

Datenschutzerklärung