Methoden und Werte

PutinI

Mitglied
Ich hätte eine bitte! Ich muss einen Taschenrechner schreiben! Da muss ich mit der Methode calc Rechnen. Mit der Methode calculator() Die zahlen und operator einlesen und dan hab ich noch getOperator() wo ich die zulässigen Operatoren vergleiche und wenns nicht einer von denen ist macht er automatisch ein +. So jetzt mal das was ich schon habe!


Java:
import java.util.Scanner;
 
 
public class Aufgabe3a {
 
    /**
     * @param args
     */
    
         static void calc (int calculator, int z2, char getOperator)
    {
       
        int z1 = calculator;
        
        System.out.println("calc = " + calculator );
        
        switch (getOperator){
       
        case'+':
            int s = z1 + z2;
            System.out.println("Das Ergebniss von " +z1+ " + " +z2+ " ist: " +s);
            break;
   
        case'-':
            s = z1 - z2;
            System.out.println("Das Ergebniss von " +z1+ " - " +z2+ " ist: " +s);
            break;
           
        case'*':   
            s = z1 * z2;
            System.out.println("Das Ergebniss von " +z1+ " * " +z2+ " ist: " +s);
            break;
           
        case'/':
            s = z1 / z2;
            System.out.println("Das Ergebniss von " +z1+ " / " +z2+ " ist: " +s);
            break;
       
       
        }}
   
   
   
       static int calculator(){
       
       
        Scanner sc = new Scanner(System.in);
       
        System.out.println("Geben Sie die erste Zal ein: ");
        int z1 = sc.nextInt();
       
       
        System.out.println("Geben Sie die zweite Zahl ein: ");
        int z2 = sc.nextInt();
        
       
        System.out.println("Geben Sie einen Operator(+,-,*,/) ein: ");
        getOperator();
        return z1;
   
    }
   
   
   
       public static char getOperator()
    {
        Scanner s = new Scanner(System.in);
                    
        String op = s.next();               
        char c = (op.matches("[+-/\\*]"))  ? op.charAt(0) : '+';
        
        return c;                   
    }
       
       
    
   
   
   
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
       
        int z1 = 0, z2 = 0, s = 0;
        char o = 0;
       
       
        calculator();
        //getOperator();
        //calc(calculator(), z2, getOperator());
       
 }
    }

So jetzt steck ich fest! Was mach ich da falsch! getOperator() haut mal hin. Dann calc() passt auch!

Was ich nicht weiß wie ich von calculator() zwei werte der Methode calc() übergeben kann! Und dann sollte es noch so sein das man einen Menüpunkt am Ende hat wo man fortfahren oder abbrechen kann! Mit J/N!

Bitte um hilfe!
 
Calculator erfragt 3 werte, es wird nur einer zurückgegeben und einer (Operator) verschwindet im nirwana
 
hier ein wenig Fortschritt
Java:
class Aufgabe3a {

	static Scanner s = new Scanner(System.in);

	static void calc(int calculator, int z2, char getOperator) {

		int z1 = calculator;

		System.out.println("calc = " + calculator);

		switch (getOperator) {

		case '+':
			int s = z1 + z2;
			System.out.println("Das Ergebniss von " + z1 + " + " + z2
					+ " ist: " + s);
			break;

		case '-':
			s = z1 - z2;
			System.out.println("Das Ergebniss von " + z1 + " - " + z2
					+ " ist: " + s);
			break;

		case '*':
			s = z1 * z2;
			System.out.println("Das Ergebniss von " + z1 + " * " + z2
					+ " ist: " + s);
			break;

		case '/':
			s = z1 / z2;
			System.out.println("Das Ergebniss von " + z1 + " / " + z2
					+ " ist: " + s);
			break;
		default:
			System.out.println("hier stimmt was nicht");
		}
	}

	public static char getOperator() {
		String op = s.next();
		char c = (op.matches("[+/\\*-]")) ? op.charAt(0) : '+';
		return c;
	}

	public static void main(String[] args) {
		System.out.println("Geben Sie die erste Zal ein: ");
		int z1 = s.nextInt();

		System.out.println("Geben Sie die zweite Zahl ein: ");
		int z2 = s.nextInt();

		System.out.println("Geben Sie einen Operator(+,-,*,/) ein: ");
		char c = getOperator();

		calc(z1, z2, c);
	}
}
ich habe dein Pattern überarbeitet,
bei [+-/\\*] war das - ein Bereich 'alles von + bis /', da ist praktischerweise das Minus-Zeichen auch mit drin, aber auch Komma und andere, siehe
ASCII-Tabelle
das - muss ans Ende in den eckigen Klammern, dann ist es wirklich nur ein -

Scanner besser nur einmal als statische Variable anlegen, nicht ständig neu
 
SlaterB vielen Dank! Naja leider ist es nicht so gelöst wie es vorgegeben bekommen hab! Deswegen ärdere ich mich ja auch so!

Schreiben Sie ein Programm Aufgabe4.java, das folgende Methoden implementiert.

a) Implementieren Sie eine Methode calc, welche als Parameter zwei Int‐Werte und einen Char‐Wert
erhält und einen Int‐Wert als Ergebnis liefert. Die Methode soll abhängig vom übergebenen Zeichen
(+, ‐, *, /) die beiden Int‐Werte addieren/subtrahieren/multiplizieren/dividieren.

b) Implementieren Sie eine Methode calculator(). In dieser Methode soll der Benutzer einen
Rechenoperator und zwei Zahlen über die Konsole eingeben, welche dann an die Methode calc()
übergeben werden. Zum Einlesen des Zeichens verwenden Sie die gegebene Methode
getOperator(), welche sicherstellt, dass nur eine erlaubte Rechenoperation eingegeben werden
kann bzw. im Fall einer falsche Eingabe standardmäßig den '+' Operator zurückliefert. Das Ergebnis soll
über die Konsole ausgegeben werden. Anschließend soll der Benutzer gefragt werden, ob er eine
weitere Berechnung durchführen will (j/n), ist die Antwort "Ja", so sollen wieder zwei Zahlen sowie ein
Operator eingelesen und berechnet werden, bei "Nein", bricht das Programm ab. Ein Programmlauf
von Aufgabe2.java könnte zum Beispiel wie folgt aussehen:

Geben Sie die erste Zahl ein: 5
Geben Sie die zweite Zahl ein: 10
Geben Sie einen Operator (+,-,*, /) ein: *

Das Ergebnis von 5 * 10 ist: 50

Weitere Berechnung durchführen (j/n)?
n
 
Zuletzt bearbeitet:
dann verschiebe doch alles aus der main in die Methode..
(falls du dich auf meinen Code beziehst, nochmal ein Hinweis darauf bei so vielen Postings gleichzeitig 😉 )
 
Ja und genau das is ja das problem! Dann hab ich einen neue Methode wie zB.:

Java:
static int calculator(){
       
       
        Scanner sc = new Scanner(System.in);
       
        System.out.println("Geben Sie die erste Zal ein: ");
        int z1 = sc.nextInt();
       
        
       
        System.out.println("Geben Sie die zweite Zahl ein: ");
        int z2 = sc.nextInt();
        
       
        System.out.println("Geben Sie einen Operator(+,-,*,/) ein: ");
        getOperator();

jetzt die erste frage wie kann ich dann z1 und z2 weitergeben an calc()
und darf ich "getOperator();" machen damit er dan in die Methode geht?
 
hast du meinen Code nun gesehen oder nicht?
kopiere den kompletten Inhalt der main-Methode aus meinen Code in deine calculator()-Methode,
dein jetzt wiederholter Code vom allerersten Posting enthält diverse Fehler, ganz unabhängig davon, WO dieser Code steht

ein Rückgabewert int ist für calculator() meiner Ansicht nach nicht gefordert
 
wie es aussieht denk ich da viel viel zu kompliziert! Ich denke immer das ich noch die Methode wie zB.: static void calculator()
schreiben muss! so dann pack ich da das was eingelesen werden muss da rein!
Java:
System.out.println("Geben Sie die erste Zal ein: ");
	        int z1 = s.nextInt();
	 
	        System.out.println("Geben Sie die zweite Zahl ein: ");
	        int z2 = s.nextInt();
	 
	        System.out.println("Geben Sie einen Operator(+,-,*,/) ein: ");
	        char c = getOperator();

Die pack ich ober der main wo hin! Aber wei bekomm ich da die Werte raus? Oder versteh ich da die angebe schon ganz falsch?
"Implementieren Sie eine Methode calculator(). In dieser Methode soll der Benutzer einen
Rechenoperator und zwei Zahlen über die Konsole eingeben, welche dann an die Methode calc()
übergeben werden"
 
Zuletzt bearbeitet:
diese 8 Zeilen zusammen mit dem calc(3 Parameter)-Aufruf entsprechen genau dem zitierten Teil der Aufgabe,
abgesehen davon dass du das ganze in die Methode calculator() verschieben sollst statt es in der main() zu belassen
 
genau ich muss eine eigene Methode mit namen calculator dafür auserhalb der main machen! Und ich steh vor dem problem wie ich da die 3 werte ausgeben kann zumindest auf calc übertragen übergeben kann.
 
Java:
static void calculator(){
        System.out.println("Geben Sie die erste Zal ein: ");
        int z1 = s.nextInt();
 
        System.out.println("Geben Sie die zweite Zahl ein: ");
        int z2 = s.nextInt();
 
        System.out.println("Geben Sie einen Operator(+,-,*,/) ein: ");
        char c = getOperator();
 
        calc(z1, z2, c);
}
?!

kompletten Code meiner main-Methode in diese calculator()-Methode verschieben?!
was ist daran denn unverständlich?!
 
Gott bin ich begriffsstützig! Ja danke! Leider verwende ich Java erst seit 2 Tagen und habs früher noch nicht verwendet!
Jetzt muss ich nur noch das J/N Menü erledigen.
 

Zurück
Oben