Witam,
mam za zadanie stworzyć prosty kalkulator z zastosowaniem instrukcji switch. Podczas testowania deklaracji liczb biorących udział w działaniu wszystko działało dobrze, jednak problem pojawił się przy wyborze typu działania (bez względu na wpisany w okno znak, pętla nie przestaje działać). Prawdopodobnie nie powinienem kończyć programu dopóki nie poradzę sobie z tym problemem, ale chciałem wrzucić tutaj jak według mnie powinna wyglądać całość (dodanie instrukcji switch i okna z wynikiem). Być może wyjdą jakieś dodatkowe błędy. Proszę o pomoc.
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Kalkulator {
public static void main(String[] args) {
//deklaracja pierwszej liczby
double pierwsza = 0;
String n1 = JOptionPane.showInputDialog("Witaj w kalkulatorze! \n Wprowadź pierwszą liczbę:");
if(n1 != null){
Scanner scan = new Scanner(n1);
pierwsza = scan.nextDouble();
}
//wybór działania
char dzialanie = 'x';
while(dzialanie != '+' || dzialanie != '-' || dzialanie != '*' || dzialanie != '/'){
String znak = JOptionPane.showInputDialog("Wprowadź typ działania (+, -, *, /):");
if(znak != null){
Scanner scan = new Scanner(znak);
dzialanie = scan.next().charAt(0);
}
}
//deklaracja drugiej liczby
double druga = 1;
while(druga != 0){
String n2 = JOptionPane.showInputDialog("Wprowadź drugą liczbę:");
if(n2 != null){
Scanner scan = new Scanner(n2);
druga = scan.nextDouble();
}
}
//obliczenia
double wynik = 0;
switch(dzialanie){
case '+': wynik = pierwsza + druga; break;
case '-': wynik = pierwsza + druga; break;
case '*': wynik = pierwsza + druga; break;
case '/': wynik = pierwsza + druga; break;
default : System.out.println("błąd danych");
}
JOptionPane.showMessageDialog(null, "Wynik: " + wynik);
}
}