2 Zahlen einlesen Grundrechenarten

Hallo, es geht um folgende Aufgabe:
Schreiben Sie eine Applikation, die zwei Zahlen einliest. Diese beiden
Zahlen sollen in den Grundrechenarten „verarbeitet“ werden. Welche
Grundrechenart verwendet soll, soll ebenfalls abgefragt werden. Verwenden
Sie switch - case, um die Zahlen entsprechend der gewählten Grundrechenart
zu „verarbeiten“. Geben Sie das jeweilige Ergebnis aus. Wählen Sie für Ihre
Applikation geeignete Datentypen aus.
Ich habe das Programm fast fertig, jedoch weiß ich nicht wie ich das Ergebnis ausgeben kann, trotz der switch-case Anweisung.

public class Main {

public static void main(String[] args) throws IOException{

int zahl1;
int zahl2;
String eingabe1;
String eingabe2;
char operator;

eingabe1 = JOptionPane.showInputDialog(null,„Geben Sie die 1. Zahl ein“);
zahl1 = Integer.parseInt(eingabe1);
eingabe2 = JOptionPane.showInputDialog(null,„Geben Sie die 2. Zahl ein“);
zahl2 = Integer.parseInt(eingabe1);
operator = JOptionPane.showInputDialog(null,„Geben Sie den zu verwendenen Operator ein“).charAt(0);
zahl1 = Integer.parseInt(eingabe1);

switch ( operator )
{
case ‚+‘:
System.out.println(zahl1+zahl2);
break;
case ‚-‘:
System.out.println(zahl1-zahl2);
break;
case ‚*‘:
System.out.println(zahl1*zahl2);
break;
case ‚/‘:
System.out.println(zahl1/zahl2);
break;
}

}}

hi, ich programmiere zwar kein Java mehr, daher bin ich nicht mehr so sehr damit vertraut - aber kannste das Ergebnis nicht einfach über eine Messagebox der Form:
JOptionPane.showMessageDialog(null, „Test“, „Test Titel“, JOptionPane.OK_CANCEL_OPTION);

ausgeben? Da müsste jetzt noch der Button OK und Abbrechen mit bei sein, aber vielleicht gibts ja auch die Einstellung JOptionPane.OK_OPTION?

Viele Grüße

Manny

Ne hab ich schon versucht, funktioniert nicht.

Warum kannst du keine Messagebox ausgeben?

Weil ich muss doch für den jeweiligen ‚case‘ eine message-box erstellen, und ich weiß nicht wie ich das machen soll.

Hallo,

eingabe2 = JOptionPane.showInputDialog(null,„Geben Sie die 2. Zahl ein“);
zahl2 = Integer.parseInt(eingabe1);

Hier liegt der Fehler, du musst für zahl2 auch eingabe2 parsen, du verwendets jeweils die erste Eingabe für beide Werte.

Ich sehe sowas auch nicht auf den ersten Blick, aber ein

System.out.println("Rechne " + zahl1 + " " + operator + " " + zahl2);

vor der switch Anweisung hilft einem da schell auf die Sprünge.

Gruß
Heavy

Hat jetzt doch geklappt mit dem switch und case und die Ausgabe ist auch richtig.
danke nochmal :smile:

Weil ich muss doch für den jeweiligen ‚case‘ eine message-box
erstellen, und ich weiß nicht wie ich das machen soll.

Nein, du musst das nicht für jeden case machen. Du kannst dir doch das Ergebnis der Rechnung merken und es später ausgeben! Dazu sind Variablen da, so wie du dir die Eingaben merkst.

  1. Gebe das Rechenergebnis nicht direkt aus sondern weise es einer Variablen zu, Absatz 2.3.2:
    http://openbook.galileocomputing.de/javainsel8/javai…

  2. Nach dem switch/case das Rechenergebnis (Inhalt der entsprechenden Variable) ausgeben, Absatz 16.21.3:
    http://openbook.galileocomputing.de/javainsel8/javai…

hth
McPringle

Und wie weise ich den einzelnen Monaten die Quartale zu?

Kann man in einem case z.b. 1-3 schreiben, dann würde das nämlich funktionieren, weil die Monate deren Zahlen von 1-3 zugewiesen worden sind, gehören ja zum 1. Quartal

Ich hab mir das so vorgestellt, aber irgendwie klappt das nicht so ganz.

import javax.swing.JOptionPane;

package javaapplication4;

public class Main {

public static void main(String[] args) {

int januar = 1, februar = 2, märz = 3, april = 4, mai = 5;
int juni = 6, juli = 7, august = 8, september = 9, oktober = 10;
int november = 11, dezember = 12;
String eingabe;
int monat;

eingabe = JOptionPane.showInputDialog(„Geben Sie den Monat ein“);
monat = Integer.parseInt(eingabe);

switch (monat)
{
case ‚1-3‘:
System.out.println(„Der Monat gehört zum 1. Quartal“);
break;
case ‚4-6‘:
System.out.println(„Der Monat gehört zum 2. Quartal“);
break;

}

}

}

Hi,also das ist ja jetzt eine andere Aufgabe oder?

import javax.swing.JOptionPane;

import muss nach dem package kommen.

package javaapplication4;

switch (monat)
{
case ‚1-3‘:
System.out.println(„Der Monat gehört zum 1.
Quartal“);
break;
case ‚4-6‘:
System.out.println(„Der Monat gehört zum 2.
Quartal“);
break;

Das von bis bekommst du das in einer switch-Anweisung so hin:

switch(monat)
{
case 1:
case 2:
case 3:
System.out.println(„Der Monat gehört zum 1.Quartal“);
break;
case 4:

… usw.

}
Muss es denn in einer switch-Anweisung sein?

So, zu deinem vorherigen Beispiel, warum geht das bei dir nicht?

int ergebnis = 0;
switch (operator)
{
case ‚+‘:
ergebnis = zahl1+zahl2;
break;
case ‚-‘:
ergebnis = zahl1-zahl2;
break;
case ‚*‘:
ergebnis = zahl1*zahl2;
break;
case ‚/‘:
ergebnis = zahl1/zahl2;
break;
}

JOptionPane.showMessageDialog(null,"Das Ergebnis ist " + ergebnis + „.“);

Noch als kleiner Tipp, aber vll kommts hier nicht infrage weils eine Übungsaufgabe ist, wenn du etwas entgegen nimmst (Durch deine Eingabefenster) dann darfst du dich nicht drauf verlassen das du auch das immer bekommst was du eigentlich willst. Wenn du nämlich in deine Eingaben Buchstaben eintippst dann schmiert dir die Geschichte ab :wink: Nur so am Rande.

Ja ich hab das Programm jetzt zum Glück schon zum laufen kriegen können.
Vielen dank nochmal :smile: