Prosty kalkulator - poprawność.

0

Witam.
Przerzuciłem się z C++ do javy, i prosiłbym o kilka rad jak poprawić ten malutki kod, jakie błędy popełniam itp. Z góry dziękuję bardzo za każdą wskazówkę, jest to dla mnie bardzo ważne, żeby od początku stosować poprawne reguły.

Od siebie mam tylko 2 pytania
-Dlaczego kursor w konsoli nieprawidłowo się ustawia(IDE Eclipse), i dopiero po wpisaniu czegoś przeskakuję w poprawne miejsce?
-W jaki sposób w jave sprawniej wypisywać obliczenia? tzn, w c++ np dodawanie zrobiłbym po prostu

cout <<first<<"+"<<second<<"="<< first+second;
 bez konieczności tworzenia nowej zmiennej. Da się tak w javie?

Mój kod:

package idontknowwhathappendhere;

import java.util.Scanner;

public class Calculator
{
	static Scanner read = new Scanner(System.in); 
	
	public static void main(String[] args)
	{
		menu();
	}

	static void menu()
	{
		System.out.print("Welcome to simple calculator!");
		
		System.out.print("\nPlease write two numbers: ");	
		
		double first = read.nextDouble();
		double second = read.nextDouble();
		
	
		System.out.print("1. Add ");	
		System.out.print("\n2. Subtract ");	
		System.out.print("\n3. Multiply ");	
		System.out.print("\n4. Divide");	
		System.out.print("\n5. New numbers");
		System.out.print("\n6. The End\n");	
			
		for(;;)
		{
				
			System.out.print("\nGood! Now choose what you wanna do: ");
		
			int choose = read.nextInt();
			switch(choose)
			{
			case 1:
				double add = first+second;
				System.out.print(first+ " + " +second+ " = " +add);
				break;
			case 2:
				double subtract= first - second;
				System.out.print(first+ " - " +second+ " = " +subtract);
				break;
			case 3:
				double multiply= first * second;
				System.out.print(first+ " * " +second+ " = " +multiply);			
				break;
			case 4:
				double divide= first / second;
				System.out.print(first+ " / " +second+ " = " +divide);
				break;
			case 5:
				System.out.print("\nPlease write two numbers: ");	
				first = read.nextDouble();
				second = read.nextDouble();
				break;
			case 6:
				System.exit(0);
			
			default:
				System.out.print("Wrong number! you have to choose 1-4. Try again.!");	
		
			}
		}
	}
}

2

Taki zapis powinien wypisać wynik dodawania zamiast połączyć 2 stringi:

System.out.print(first+ " + " +second+ " = " + (first+second));

Do kodu mam tylko zastrzeżenie, że nie sprawdzasz dzielenia przez 0. Co prawda jest to ładnie obsługiwane przez język, ale ja bym to jednak sprawdził.

Co do kursora, to ci nie pomogę, bo to była moja pierwsza styczność z Javą. Jak to dobrze, że istnieją przeglądarkowe kompilatory. :P

0

Zmieniłbym tylko pobieranie danych z read,na klase Scanner.

import java.util.Scanner

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