Moc jsem se s tím neštval a asi to není to nejlepší řešení z nejlepších, ale mělo by to fungovat ...


Třída Start:
Kód:
public class Start {
    
	public static void main (String [] args){
		Pocitadlo pocitadlo = new Pocitadlo();
		pocitadlo.pocitej();
    }
	
}
Třída Pocitadlo:
Kód:
import java.io.BufferedReader;
import java.io.InputStreamReader;


public class Pocitadlo {
	private boolean konec = false;
	private boolean zadanoPrvniCislo = false;
	private int prvniCislo = 0;
	private boolean zadanoDruheCislo = false;
	private int druheCislo = 0;
	
	public void pocitej() {
		while (!konec) {
			if (!zadanoPrvniCislo) {
				System.out.print("Zadej 1. číslo: ");
				prvniCislo = prectiInt();
				zadanoPrvniCislo = true;
			}
			else if (!zadanoDruheCislo) {
				System.out.print("Zadej 2. číslo: ");
				druheCislo = prectiInt();
				zadanoDruheCislo = true;
			}
			else {
				System.out.println("1 ... sčítaní");
				System.out.println("2 ... odčítaní");
				System.out.println("3 ... násobení");
				System.out.println("4 ... přesné dělení");
				System.out.println("5 ... celočíselné dělení");
				System.out.println("6 ... zbytek po celočíselném dělení");
				
				System.out.print("Vybraná operace: ");
				
				int cisloOperace = prectiInt();
				
				switch (cisloOperace) {
					case 1:
						System.out.print(prvniCislo+" + "+druheCislo+" = ");
						System.out.print(prvniCislo+druheCislo);
					break;
					case 2:
						System.out.print(prvniCislo+" - "+druheCislo+" = ");
						System.out.print(prvniCislo-druheCislo);
					break;
					case 3:
						System.out.print(prvniCislo+" * "+druheCislo+" = ");
						System.out.print(prvniCislo*druheCislo);
					break;
					case 4:
						if (druheCislo == 0) {
							System.out.println("Není možné dělit nulou.");
						}
						else {
							System.out.print(prvniCislo+" / "+druheCislo+" = ");
							System.out.print((double)prvniCislo/druheCislo);
						}
					break;
					case 5:
						if (druheCislo == 0) {
							System.out.println("Není možné dělit nulou.");
						}
						else {
							System.out.print(prvniCislo+" / "+druheCislo+" = ");
							System.out.print(prvniCislo/druheCislo);
						}
					break;
					case 6:
						if (druheCislo == 0) {
							System.out.println("Není možné dělit nulou.");
						}
						else {
							System.out.print(prvniCislo+" % "+druheCislo+" = ");
							System.out.print(prvniCislo%druheCislo);
						}
					break;
					default:
						System.out.println("Operace č. "+cisloOperace+" není definována.");
					break;
				}
				konec = true;
			}
		}
	}
	
    private int prectiInt() {
        String vstupniRadek = "";

        BufferedReader vstup = new BufferedReader(new InputStreamReader(System.in));
        try {
        	vstupniRadek = vstup.readLine();
        	if (vstupniRadek.equals("konec")) {
	        	konec = true;
	        	return 0;
        	}
        	else {
        		try {
	        		int x = Integer.parseInt(vstupniRadek);
	        		return x;
	        	}
	        	catch(NumberFormatException e) {
	        		System.out.println("Zadaná hodnota není číslo");
	        		konec = true;
	        		return 0;
	        	}
        	}
        }
        catch (java.io.IOException e) {
            System.out.println("Vyskytla se chyba během čtení příkazu.");
            konec = true;
            return 0;
        }
        
       
    }
}