Beiträge von Keeper

    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

    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.

    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

    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