samedi 18 janvier 2020

Could you help me with my loop calculator?

I am making a calculator for school project. My problem is, that when I input e.g. 1 at op = sc.next().charAt(0);, the first if statement does its body, even if it's not true. Also, it doesn't return at the start of the loop, but the program ends. I'm still new at Java so that's why I'm here. Also, I am open to any suggestions to make it better. :)

Thank you!


import java.util.Scanner;

public class Kalkulacka {
    public static void main(String[] args) {

        System.out.println("Vitajte v programe na výpočet jednoduchých matematických príkladov!");
        Scanner sc= new Scanner(System.in);
        double a;
        char op = 0;
        double b;
        double priklad = 0;
        int i=0;
        System.out.println("Zadajte číslo");

        a= sc.nextDouble();

        priklad= a;



        while (true) {

            if (i<1) {
                System.out.println("Zvoľte si operátora:");
                System.out.println("1- +");
                System.out.println("2- -");
                System.out.println("3- *");
                System.out.println("4- /");

                op = sc.next().charAt(0);

                if (op != 1 && op != 2 && op != 3 && op != 4) {
                    System.out.println("Zadali ste nesprávne číslo");
                    return;
                }
            }

            if (i>=1) {
                System.out.println("Zvoľte si operátora:");
                System.out.println("1- +");
                System.out.println("2- -");
                System.out.println("3- *");
                System.out.println("4- /");
                System.out.println("5- =");

                op= sc.next().charAt(0);

                if (op!=1 && op!=2 && op!=3 && op!=4 && op!=5) {
                    System.out.println("Zadali ste nesprávne číslo");
                    return;
                }

                if (op==5) {
                    break;
                }
            }

            System.out.println("Zadajte číslo");

            b= sc.nextDouble();

            if (i<1) {
                switch (op) {
                    case 1:
                        priklad = a + b;
                    case 2:
                        priklad = a - b;
                    case 3:
                        priklad = a * b;
                    case 4:
                        priklad = a / b;
                }
            }

            else {
                switch (op) {
                    case 1:
                        priklad = priklad + b;
                    case 2:
                        priklad = priklad - b;
                    case 3:
                        priklad = priklad * b;
                    case 4:
                        priklad = priklad / b;
                }
            }
            i=i++;
        }

        System.out.println("Výsledok je: "+priklad);
    }
}```

Aucun commentaire:

Enregistrer un commentaire