用Java做一个计算器

先做个壳子出来

public class Calculate {
    static{
        System.out.println("----------------------------");
        for(int i=1;i<=4;i++){
            for (int j = 0; j < 17; j++) {
                if(j==0){
                    System.out.print("|");
                }else if(j==16){
                    System.out.println("|");
                }else{
                    System.out.print(" ");
                }
                if(i==1&&j==8) System.out.print("加法:请输入1");
                if(i==2&&j==8) System.out.print("减法:请输入2");
                if(i==3&&j==8) System.out.print("乘法:请输入3");
                if(i==4&&j==8) System.out.print("除法:请输入4");
            }
        }
        System.out.println("----------------------------");
    }

    public static void main(String[] args) {

    }
}

2021年08月01日00:37:21


太笨了,想了好几天才知道怎么做出来 = =
2021年8月02日15:26

package Jc;

import java.util.Scanner;
public class Calculate2 {

    Scanner scan;
    int number;
    boolean flag ;
    int sum ;
    int[] figurelist = new int[100];
    int count;

    static{     //最开始傻傻的想到静态代码块,后来发现可以写一个菜单方法表示,但已经写了就不想删掉了 =_=
        System.out.println("----------------------------");
        for(int i=0;i<=4;i++){
            for (int j = 0; j < 17; j++) {      //循环打印出格子
                if(j==0){
                    System.out.print("|");
                }else if(j==16){
                    System.out.println("|");
                }else{
                    System.out.print(" ");
                }
                if(i==0&&j==8) System.out.print("退出,请输入0");
                if(i==1&&j==8) System.out.print("加法:请输入1");
                if(i==2&&j==8) System.out.print("减法:请输入2");
                if(i==3&&j==8) System.out.print("乘法:请输入3");
                if(i==4&&j==8) System.out.print("除法:请输入4");
            }
        }
        System.out.println("----------------------------");
        System.out.println("输入空格表示一个数字,输入0按下回车代表运算结束");
    }

    public Calculate2(){
        scan=new Scanner(System.in);
    }

    public void run(){      //用switch-case写了个展示的选项,输入数字即可打开相应的功能
        int userChoice = 0;
        do{
            userChoice=scan.nextInt();

            switch(userChoice){
                case 0:     //退出循环
                    System.out.println("谢谢您的使用!");
                    break;
                case 1:     //加
                    add();
                    break;
                case 2:     //减
                    subtract();
                    break;
                case 3:     //乘
                    multiply();
                    break;
                case 4:     //除
                    divide();
                    break;
                default:    //其他输入
                    System.out.println("请输入有效关键字,谢谢!");
            }
        }while(userChoice!=0);
        scan.close();       //结束时关闭,避免内存消耗
    }

    public void add(){
        flag = true;    sum = 0;
        System.out.println("目前运行的是加法:");
        while(flag){
            number = scan.nextInt();        //获取键盘输入
            if(number==0)flag=false;        //输入0时,终止循环
            sum+=number;
        }
        System.out.println("结果是:"+sum);     //输出结果

    }

    public void subtract() {
        System.out.println("目前运行的是减法:");
        flag = true;
        count = 0;
        while (flag) {
                number = scan.nextInt();
                figurelist[count] = number;     //一开始想跟加法一样写直接算的代码,但是总会把第一个数字给减掉,想了很久最后用了数组
                if (number == 0) break;
                count++;
            }
        sum=figurelist[0];      //这样设置就不会把第一个数字减掉了
        if(count==1)        //一个数字时直接输出
            System.out.println("结果是:"+sum);
        else{
            for(int i = 1; i <= count-1; i++){      //sum已经等于第一个数字了,所以直接从第二个数字开始,count-1的目的是防止0进入数组
                sum-=figurelist[i];
            }
            System.out.println("结果是:"+sum);
        }
    }

    public void multiply(){
        System.out.println("目前运行的是乘法:");
        flag = true;
        count = 0;
        while(flag){
            number = scan.nextInt();
            figurelist[count] = number;
            if(number == 0) break;
            count++;
        }
        sum=figurelist[0];
        if(count==1)
            System.out.println("结果是:"+sum);
        else{
            for (int i = 1; i <= count-1; i++) {        //思路同subtract
                sum*=figurelist[i];
            }
            System.out.println("结果是:"+sum);
        }
    }

    public void divide(){
        System.out.println("目前运行的是除法:");
        flag = true;
        count = 0;
        while(flag){
            number = scan.nextInt();
            figurelist[count] = number;
            if(number == 0) break;
            count++;
        }
        sum=figurelist[0];
        if(count==1)
            System.out.println("结果是:"+sum);
        else{
            for (int i = 1; i <= count-1; i++) {
                sum/=figurelist[i];     //按理来说要设置一个分母为0时,输出不合法的选项。但是我设置的是输入0就停止运行程序,所以就偷懒没写了^ ^
            }
            System.out.println("结果是:"+sum);
        }
    }

    public static void main(String[] args) {
        Calculate2 myCalculate2 = new Calculate2();
        myCalculate2.run();
    }

}

posted @ 2021-08-01 00:38  颜骏  阅读(340)  评论(0编辑  收藏  举报