看狂神学java------------计算器作业

这篇博客介绍了如何使用Java编写一个简单的计算器程序。通过Scanner类获取用户输入的数字和运算符,进行加减乘除运算,并处理除数为0的情况。程序还提供了循环,让用户可以选择是否继续计算。博客中提到了`hasNextDouble()`方法的用法,字符串比较的注意事项,以及Scanner的关闭。虽然异常处理部分未涉及,但强调了其重要性。
摘要由CSDN通过智能技术生成

简单的计算器代码编写

这几天在看狂神的java基础视频。当讲完三个基础结构之后,布置了一个 制作简易的计算器的 作业,不是很难,新手运用视频的知识就可以完成,只是比较复杂,需要耐心去编写。

代码如下:

import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);  //创建输入对象,后续需要用户输入
        String key="y";                          //由于作业要求完成四则运算之后,需要用户来选择程序是否结束。
        while(key.equals("y")) {                 //  使用字符串的equals方法,比较若是用户输入 y 则程序接着运行。
            String opr = "";					//定义操作符						
            double num1 = 0, num2 = 0;			//定义俩个操作数
            double result = 0;					
            System.out.println("请输入第一个操作数");
            if(scanner.hasNextDouble()){		//判断用户是否输入数字
                num1 = scanner.nextDouble();
            }else{
                System.out.println("您输入的操作数有误,请输入正确的操作数");
                num1=scanner.nextDouble(); 
            }                                   
            System.out.println("请输入操作符( + 或 - 或 * 或 /)");
                opr = scanner.next();                  
            System.out.println("请输入第二个操作数");
            if(scanner.hasNextDouble()){
                num2 = scanner.nextDouble();
            }else{
                System.out.println("您输入的操作数有误,请输入正确的操作数");
                num2=scanner.nextDouble();
            }
            switch (opr) {											//选择运算类型
                case "+":
                    System.out.println("您选择加法运算:");
                    result = add(num1, num2);
                    System.out.println("结果为:" + num1 + opr + num2 + "=" + result);
                    break;
                case "-":
                    System.out.println("您选择减法运算:");
                    result = sub(num1, num2);
                    System.out.println("结果为:" + num1 + opr + num2 + "=" + result);
                    break;
                case "*":
                    System.out.println("您选择乘法:");
                    result = mul(num1, num2);
                    System.out.println("结果为:" + num1 + opr + num2 + "=" + result);
                    break;
                case "/":
                    if (num2 == 0) {
                        System.out.println("被除数不能为0");
                    } else {
                        System.out.println("您选择除法运算:");
                        result = div(num1, num2);
                        System.out.println("结果为:" + num1 + opr + num2 + "=" + result);
                    }
                    break;
                default:
                    System.out.println("操作符错误,请输入正确的操作符");           //判断操作符并提示
                    break;
            }
            System.out.println("是否继续计算?(输入y继续,其他任意键退出)");
            key = scanner.next();
        }
        System.out.println("感谢本次使用!");
        scanner.close();												//关闭scanner管道
    }

    public static double add(double num1,double num2){                 //简单的加法运算
        return num1+num2;
    }
    public static double sub(double num1,double num2){					//简单的减法运算
        return num1-num2;
    }
    public static double mul(double num1,double num2){					//简单的乘法运算
        return num1*num2;
    }
    public static double div(double num1,double num2){					//简单的除法运算
        return num1/num2;
    }
}

这里面有几个点需要说明:

  1. 对于while循环里的 hasNextDouble()方法,是用来判断是否有输入流输入,如果有并且是double型,则进入while循环,若输入了却不是double型,则抛出异常结束此程序运行,此处应该还需要加try........catch语句来捕捉异常,但狂神还没有纤细讲解异常,所以此处以新手的角度来完成代码,故省略try......catch。

  2. 对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

    “==”比较两个变量本身的值,即两个对象在内存中的首地址。 java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性

    equals()”比较字符串中所包含的内容是否相同

  3. 对于scanner.close()方法:凡是属于io流的类,如果不关闭就会一直占用电脑资源,应该养成良好的习惯,使用close()方法,将其关闭。.

  4. next()方法和hasNextLine()

    :读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空白,next()方法会自动将其去掉,只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 后者将是以回车键为结束符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值