Prosty Calculator problem w kompilacji

0

Cześć,
Potrzebuje drobnej pomocy przy nauce, mógłby mi ktoś podpowiedzieć w którym miejscu popełniłem błąd, Eclipse nie pokazuje błędów w składni?
Chodzi oto że przy kompilacji wpisuje liczbę następnie wybieram znak z klawiatury który jest przypisany do działania i od razu pokazuje mi się else z końca kodu, który powinien pokazywać jak wpisze inny znak niż w if-ie.
Czy ta składnia kodu jest w miarę czytelna?

public class CalculatorSwitch {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("Podaj pierwszą liczbę: ");
		double numberone = sc.nextDouble();		
		System.out.println("Podaj jakie działanie ma wykonać: ");
		System.out.println("+ dodawanie\n" 
							+ "- odejmowanie\n"
							+ "* mnożenie\n"
							+ "/ dzielenie \n"
							+ "% dzielenie z resztą\n"
							+ "^ potęga\n"
							+ "V - pierwiastek kwadratowy z liczby pierwszej");
		String operation=sc.next();		 
		if(operation == "+" ||
				   operation == "-" || 
				   operation == "*" ||
				   operation == "/" ||
		           operation == "%" ||
				   operation == "^" ||
				   operation == "V" ) {
			System.out.println("Podaj drugą liczbę: ");
			double numbertwo=sc.nextDouble();
		
			switch(operation) { 
				case "+":
					System.out.println(numberone +" + "+ numbertwo + " = "+ (numberone + numbertwo));	
					break;
				case "-":
					System.out.println(numberone +" - "+ numbertwo + " = "+ (numberone - numbertwo));
					break;
				case "*":
					System.out.println(numberone +" * "+ numbertwo + " = "+ (numberone * numbertwo));
					break;
				case "/":
					if(numbertwo >0 ) {
					double score =numberone / numbertwo;
					System.out.printf(numberone +" / "+ numbertwo + " = "+Math.floor(score));
					break;
					} else System.out.println("Nie dzielimy przez 0!!!"); 
					break;
				case "%":
					if(numbertwo >0 ) {
					double score2 =numberone / numbertwo;
					System.out.printf(numberone +" / "+ numbertwo + " = "+Math.floor(score2));
					break;
					} else System.out.printf(" reszta: " +(numberone % numbertwo));
					break;
				case "^":
					System.out.println(numberone +" ^ "+ numbertwo + " = "+ (Math.pow(numberone, numberone)));
					break;
				case "V":		
					System.out.println(numberone + " = "+ (Math.sqrt(numberone)));
					break;			      
			}
		}else System.out.println("Błędny znak został wpisany");
				
	}	
}
1

operation.equals("+")

W pozostałych tak samo. W Javie == porównuje tylko referencje.

0

dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1