Taschenrechner springt an Start nach falscher Eingabe

engelsteufelin

Mitglied
Wenn man eine Zahl eingegeben hat soll man zurück zur letzten Zahl springen können und nicht an den Anfang des Programms.
Also wenn man die 2. Zahl falsch hat das er dann zu Zahl 2 sprint.
Das gleiche auch beim Operator.
Und das er die voherigen Zahlen solange zwischenspeichert wenn etwas falsch ist.

Das macht er nur leider nicht. hmm :bahnhof:
Wie stelle ich das an, das er es macht?

Java:
import static java.lang.System.out;
import java.util.Scanner;
    
public class test_1 {

   public static void main(String[] args) {
      new test_1();
      
      Scanner s = new Scanner (System.in);
      Werkzeug input= new Werkzeug();
      do {
          out.println("Bitte geben Sie Ihre Rechenaufgabe ein:");
          out.println("="+input.calc());
          out.print("Eine weitere Aufgabe rechnen? (j/n) ");
       }
       while(s.next().equals("j"));
    }
   }

Java:
import java.util.InputMismatchException;
import static java.lang.System.out;
import java.util.Scanner;

public class Werkzeug extends test_1 {
	   
	   public double calc() {
		   try {
	   
	    	 Scanner s = new Scanner (System.in);
	    	 
	         double nummer1 = s.nextDouble();
	         String operator = s.next();
	         double nummer2 = s.nextDouble();
	         
	        // if(nummer1==)
	         if(operator.equals("+")) {
	            return addieren(nummer1, nummer2);
	         }
	         else if(operator.equals("-")) {
	            return subtrahieren(nummer1, nummer2);
	         }
	         else if(operator.equals("*")) {
	            return multiplizieren(nummer1, nummer2);
	         }
	         else if(operator.equals("/")) {
	        	 if (nummer2== 0){
	        	out.println("Teilen durch 0 funktioniert nicht");
	        	}
	        	 else
	        	 {
	            return dividieren(nummer1, nummer2);
	        	 }
	         }
	         else
	        	 {
	        	 out.println("Hä?");
	        	 return 9;
	        	 }
		   }	      
	      catch(InputMismatchException e) {
	    	  out.println("Geben Sie pro Zeile nur eine Zahl bzw. einen Operator ein!\nZwischen zwei Zahlen muss ein Operator eingeben werden.");
	      }     
	      return 0.0;
	   }
	   public double subtrahieren(double minuend, double subtrahend) {
	      return minuend - subtrahend;
	   }
	   public double addieren(double summand1, double summand2) {
	       return summand1 + summand2;
	   }
	   public double dividieren(double dividend, double divisor) {
	      return dividend / divisor;
	   }
	   public double multiplizieren(double factor1, double factor2) {
	       return factor1 * factor2;
	   }
}
 
S

SlaterB

Gast
das ist doch recht deutlich, die Eingaben ausbauen, mehrere Versuche für jede Zahl usw.
Java:
             double nummer1 = s.nextDouble();
             String operator = s.next();
             double nummer2 = s.nextDouble();
ist der Code bisher, das muss ausgebaut werden,
eine Methode fürs Zahlen einlesen mit Schleife, Wiederholung solange Fehler usw.

einfach nur die Frage stellen ist in der Tat bisschen wenig, gar keine Ideen zum Vorgehen?
 
T

Trolllllll

Gast
Danke, jetzt habe ich die Frage versatnden, bzw was damit gemeint ist. Sorry, war aus der Fragestellung und dem Code für mich nicht gleich ganz klar ;-)

SlaterB hat es ja schon beantwortet, würde ich sagen

Nebenbei eine Frage, warum extends Werkzeuge deine test_1 classe?
 

engelsteufelin

Mitglied
Danke, jetzt habe ich die Frage versatnden, bzw was damit gemeint ist. Sorry, war aus der Fragestellung und dem Code für mich nicht gleich ganz klar ;-)

SlaterB hat es ja schon beantwortet, würde ich sagen

Nebenbei eine Frage, warum extends Werkzeuge deine test_1 classe?

also quasi für jede eingabe eine while schleife einbauen und wenn des falsch ist springt sie wieder zurück und der Rest bleibt gespeichert?
 

engelsteufelin

Mitglied
Java:
public class Werkzeug extends test_1 {
	
	public double z(){
		Scanner s = new Scanner(System.in);
		double zahl;
		try{
			zahl=s.nextDouble();
			return zahl;
		}
		catch(Exception e)
		{
			System.out.println("das war Mist? \ngib bitte nochmal die Zahl ein");
		}
		return z();
	}
	public String d (){
		Scanner s = new Scanner(System.in);
		String operator = s.next();
		
			if(operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/"))
			{
			return operator;
			}
			else
			{
				out.println("Operator falsch. \nBitte nochmal eingeben.");
				return d();
			}
	}   
	   public double calc() {
		   try {
			   
	         double nummer1 = z();
	         
	         String operator = d();
	         
	         double nummer2 = z();
	         
	         
	        // if(nummer1==)
	         if(operator.equals("+")) {
	            return addieren(nummer1, nummer2);
	         }
	         else if(operator.equals("-")) {
	            return subtrahieren(nummer1, nummer2);
	         }
	         else if(operator.equals("*")) {
	            return multiplizieren(nummer1, nummer2);
	         }
	         else if(operator.equals("/")) {
	        	 if (nummer2== 0){
	        	out.println("Teilen durch 0 funktioniert nicht");
	        	}
	        	 else
	        	 {
	            return dividieren(nummer1, nummer2);
	        	 }
	         }
	         else
	        	 {
	        	 out.println("Hä?");
	        	 return 9;
	        	 }
		   }	      
	      catch(InputMismatchException e) {
	    	  out.println("Geben Sie pro Zeile nur eine Zahl bzw. einen Operator ein!\nZwischen zwei Zahlen muss ein Operator eingeben werden.");
	      }     
	      return 0.0;
	   }
	   public double subtrahieren(double minuend, double subtrahend) {
	      return minuend - subtrahend;
	   }
	   public double addieren(double summand1, double summand2) {
	       return summand1 + summand2;
	   }
	   public double dividieren(double dividend, double divisor) {
	      return dividend / divisor;
	   }
	   public double multiplizieren(double factor1, double factor2) {
	       return factor1 * factor2;
	   }
}

JUHU it works. :toll:
 
T

Trolllllll

Gast
Ok, auch eine möglichkeit, zwar eher selten das mittels rekursion zu lösen aber wie du ja siehst möglich =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C getSelectedRow() springt bei JButton-Auswahl nicht weiter mit Frameworks - Spring, Play, Blade, Vaadin & Co 16
G HILFE Dringend switch case springt nicht raus Frameworks - Spring, Play, Blade, Vaadin & Co 23
L Mauszeiger springt in obere linke Ecke des JDialogs Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Button springt aus Textbox Frameworks - Spring, Play, Blade, Vaadin & Co 2
A Debugger springt in andere Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 14
K Figur Springt nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Zeitmessung springt vorraus und funktioniert nicht! Frameworks - Spring, Play, Blade, Vaadin & Co 4
P Spieler im 2D-Spiel springt herum Frameworks - Spring, Play, Blade, Vaadin & Co 0
G JTable springt (JScrollPane, GridBagLayout) Frameworks - Spring, Play, Blade, Vaadin & Co 1
K TextWatcher springt nicht an Frameworks - Spring, Play, Blade, Vaadin & Co 9
T JTable + JScrollePane Größe "springt" beim resizen des Fensters Frameworks - Spring, Play, Blade, Vaadin & Co 4
W Java Applet aus der Taskleiste springt in Vordergrund Frameworks - Spring, Play, Blade, Vaadin & Co 3
O Progressbar 'springt nicht an' Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Exception springt nicht in den catch- Block Frameworks - Spring, Play, Blade, Vaadin & Co 14
R Programm springt nicht in if Bedingung Frameworks - Spring, Play, Blade, Vaadin & Co 9
F Debugging springt nicht in Methode - liefert null Frameworks - Spring, Play, Blade, Vaadin & Co 2
C LWUIT: Scrollen der Form springt am Ende Frameworks - Spring, Play, Blade, Vaadin & Co 0
Haave Animation "springt" trotz Wartebefehl Frameworks - Spring, Play, Blade, Vaadin & Co 3
J Eclipse springt nicht mehr an. Frameworks - Spring, Play, Blade, Vaadin & Co 8
nrg Debugger springt immer in Java SE Code Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Methode springt zwischen returns Frameworks - Spring, Play, Blade, Vaadin & Co 2
Balbes JComboBox springt af den ersten Wert zurück Frameworks - Spring, Play, Blade, Vaadin & Co 6
Z JList "springt" Frameworks - Spring, Play, Blade, Vaadin & Co 5
padde479 APPLICATION FAILED TO START Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Start Stop Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
C Spring Webflow: URI Template variable in on-start Frameworks - Spring, Play, Blade, Vaadin & Co 0
G Spring Thread start stop Frameworks - Spring, Play, Blade, Vaadin & Co 1

Ähnliche Java Themen

Neue Themen


Oben