Java基础篇练习:简易计算器

Java基础篇练习:简易计算器

import java.util.Scanner;
​
/**
 * 用四个方法加上循环和switch语句写一个计算器。
 * 传递两个操作数,计算他们的结果并打印到控制台。
 */
public class Demo16 {
    public static void main(String[] args) {
        double num1 = 0;
        double num2 = 0;
        boolean flag = true;
        String str = null;
        System.out.println("这是一个简易的计算器。");
        Scanner scanner = new Scanner(System.in);
​
​
        while (true) {
            System.out.println("请输入第一个数字:");
            if (scanner.hasNextDouble()) {
                num1 = scanner.nextDouble();
                break;
            } else {
                scanner.next();
                System.out.println("您的输入有误,请重新输入。");
            }
        }
​
        while (true) {
            System.out.println("请输入第二个数字:");
            if (scanner.hasNextDouble()) {
                num2 = scanner.nextDouble();
                break;
            } else {
                scanner.next();
                System.out.println("您的输入有误,请重新输入。");
            }
        }
​
        while (flag) {
            System.out.println("请输入您需要进行的运算:+,-,*,/");
            if (scanner.hasNext()) {
                str = scanner.next();
                switch (str) {
                    case "+":
                        System.out.println(num1 + "+" + num2 + "=" + countAdd(num1, num2));
                        flag=false;
                        break;
                    case "-":
                        System.out.println(num1 + "-" + num2 + "=" + countSub(num1, num2));
                        flag=false;
                        break;
                    case "*":
                        System.out.println(num1 + "*" + num2 + "=" + countMul(num1, num2));
                        flag=false;
                        break;
                    case "/":
                        System.out.println(num1 + "/" + num2 + "=" + countDiv(num1, num2));
                        flag=false;
                        break;
                    default:
                        System.out.println("请输入正确的运算符。");
                        scanner.next();
                }
            } else {
                System.out.println("您的输入有误,请重新输入。");
                scanner.next();
            }
        }
        scanner.close();
    }
​
    public static double countAdd(double a, double b) {
        return a + b;
    }
​
    public static double countSub(double a, double b) {
        return a - b;
    }
​
    public static double countMul(double a, double b) {
        return a * b;
    }
​
    public static double countDiv(double a, double b) {
        return a / b;
    }
}

 

问题总结

  • 最后的运算符判断使用break跳出时,忘记了break只会跳出当前,于是将while的条件用布尔变量来控制。

  • 同样是最后的运算符判断,接收用户输入时用了nextLine,然后会发现接收不到用户输入的数据,尝试使用next后解决,用断点发现,使用nextLine接收时,不会提示控制台输入,直接赋了str一个""值。暂时未想通,先尝试往下学习再说。

posted @   乌鸦の学习  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示