Java – jednoduchá kalkulačka s větvením

Aktualizováno: 7. 11. 2019, datum vydání: 1. 3. 2011

Příklad:

Program Kalkulačka s větvením. Umí sčítat, odečítat, násobit a dělit. Na základě zadaného kódu provede operaci se dvěma čísly zadanými zvenčí.1

Využila jsem jednoduchý příklad z knihy Programování v pascalu od Jany Pšenčíkové. Trochu jsem si ho upravila a naprogramovala v Javě.

Řešení:

Zde je moje řešení daného cvičení naprogramovaného ve vizuálním vývojovém prostředí NetBeans:

Jednoduchá kalkulačka s celočíselným výsledkem

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadej celé číslo a: ");
        int a = scanner.nextInt();
        System.out.print("Zadej operátor (+, -, *, /) ");
        scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter
        char operator = scanner.nextLine().charAt(0);
        System.out.print("Zadej celé číslo b: ");
        int b = scanner.nextInt();

        boolean chyba = false;
        int vysledek = 0;
        switch (operator) {
            case '+':
                vysledek = a + b;
                break;
            case '-':
                vysledek = a - b;
                break;
            case '*':
                vysledek = a * b;
                break;
            case '/':
                if (b == 0) {
                    System.out.println("b nesmí být nula! Nulou nelze dělit.");
                    chyba = true;
                } else {
                    vysledek = a / b; // int / int dava vysledek int
                }
                break;
            default:
                System.out.println("Zadán špatný operátor!");
                chyba = true;
                break;
        }
        if (!chyba) {
            System.out.println("Výsledek je: " + vysledek);
        }
    }
}

Jednoduchá kalkulačka s reálným výsledkem

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadej celé číslo a: ");
        int a = scanner.nextInt();
        System.out.print("Zadej operátor (+, -, *, /) ");
        scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter
        char operator = scanner.nextLine().charAt(0);
        System.out.print("Zadej celé číslo b: ");
        int b = scanner.nextInt();

        boolean chyba = false;
        float vysledek = 0;
        switch (operator) {
            case '+':
                vysledek = a + b;
                break;
            case '-':
                vysledek = a - b;
                break;
            case '*':
                vysledek = a * b;
                break;
            case '/':
                if (b == 0) {
                    System.out.println("b nesmí být nula! Nulou nelze dělit.");
                    chyba = true;
                } else {
                    vysledek = (float) a / b; // float / int dava vysledek realny
                }
                break;
            default:
                System.out.println("Zadán špatný operátor!");
                chyba = true;
                break;
        }
        if (!chyba) {
            System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista
        }
    }
}

Jednoduchá kalkulačka s reálným výsledkem, vstup načten v jednom řádku

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadejte výraz (např. 5 + 3); číslice oddělujte mezerami; operátor může být (+, -, *, /): ");
        int a = Integer.valueOf(scanner.next()).intValue(); // nacte se 1. slovo a prevede se na int
        char operator = scanner.next().charAt(0); // nacte se 2. slovo a prevede se na char
        int b = Integer.valueOf(scanner.next()).intValue(); // nacte se 3. slovo a prevede se na int

        boolean chyba = false;
        float vysledek = 0;
        switch (operator) {
            case '+':
                vysledek = a + b;
                break;
            case '-':
                vysledek = a - b;
                break;
            case '*':
                vysledek = a * b;
                break;
            case '/':
                if (b == 0) {
                    System.out.println("b nesmí být nula! Nulou nelze dělit.");
                    chyba = true;
                } else {
                    vysledek = (float) a / b; // float / int dava vysledek realny
                }
                break;
            default:
                System.out.println("Zadán špatný operátor!");
                chyba = true;
                break;
        }
        if (!chyba) {
            System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista
        }
    }
}

Jednoduchá kalkulačka s využitím jedné statické funkce

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    static float spocitej(int a, int b, char operator) {
        switch (operator) {
            case '+':
                return a + b;
            case '-':
                return a - b;
            case '*':
                return a * b;
            case '/':
                if (b == 0) {
                    System.out.println("b nesmí být nula! Nulou nelze dělit.");
                    return 0;
                } else {
                    return (float) a / b; // float / int dava vysledek realny
                }
            default:
                System.out.println("Zadán špatný operátor!");
                return 0;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadej celé číslo a: ");
        int a = scanner.nextInt();
        System.out.print("Zadej operátor (+, -, *, /) ");
        scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter
        char operator = scanner.nextLine().charAt(0);
        System.out.print("Zadej celé číslo b: ");
        int b = scanner.nextInt();

        float vysledek = spocitej(a, b, operator);
        System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista
    }
}

Jednoduchá kalkulačka s využitím více statických funkcí

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    static float secti(int a, int b) {
        return a + b;
    }

    static float odecti(int a, int b) {
        return a - b;
    }

    static float vynasob(int a, int b) {
        return a * b;
    }

    static float vydel(int a, int b) {
        if (b == 0) {
            System.out.println("b nesmí být nula! Nulou nelze dělit.");
            return 0;
        } else {
            return (float) a / b; // float / int dava vysledek realny
        }
    }

    static float spocitej(int a, int b, char operator) {
        switch (operator) {
            case '+':
                return secti(a, b);
            case '-':
                return odecti(a, b);
            case '*':
                return vynasob(a, b);
            case '/':
                return vydel(a, b);
            default:
                System.out.println("Zadán špatný operátor!");
                return 0;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadej celé číslo a: ");
        int a = scanner.nextInt();
        System.out.print("Zadej operátor (+, -, *, /) ");
        scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter
        char operator = scanner.nextLine().charAt(0);
        System.out.print("Zadej celé číslo b: ");
        int b = scanner.nextInt();

        float vysledek = spocitej(a, b, operator);
        System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista
    }
}

Jednoduchá kalkulačka s využitím instance objektu

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplicationjednoduchakalkulacka;

import java.util.Scanner;

/**
 *
 * @author Jitka
 */
public class JednoduchaKalkulacka {

    float secti(int a, int b) {
        return a + b;
    }

    float odecti(int a, int b) {
        return a - b;
    }

    float vynasob(int a, int b) {
        return a * b;
    }

    float vydel(int a, int b) {
        if (b == 0) {
            System.out.println("b nesmí být nula! Nulou nelze dělit.");
            return 0;
        } else {
            return (float) a / b; // float / int dava vysledek realny
        }
    }

    float spocitej(int a, int b, char operator) {
        switch (operator) {
            case '+':
                return secti(a, b);
            case '-':
                return odecti(a, b);
            case '*':
                return vynasob(a, b);
            case '/':
                return vydel(a, b);
            default:
                System.out.println("Zadán špatný operátor!");
                return 0;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Zadej celé číslo a: ");
        int a = scanner.nextInt();
        System.out.print("Zadej operátor (+, -, *, /) ");
        scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter
        char operator = scanner.nextLine().charAt(0);
        System.out.print("Zadej celé číslo b: ");
        int b = scanner.nextInt();

        JednoduchaKalkulacka kalkulacka = new JednoduchaKalkulacka();
        float vysledek = kalkulacka.spocitej(a, b, operator);
        System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista
    }
}

1. Jana Pšenčíková Programování v pascalu. 1. vyd. Kralice na Hané: Computer Media. 2008. ISBN 978-80-86686-96-7, str. 82

Další články