比较简单的东西,主要就是将计算结果重新赋给a,然后循环进行下次运算。
浮点数计算结果不准确,有需要自己改一下。
package project;
import java.util.Scanner;
public class CalculatorProject {
//主要实现四则运算,两个数与两个数进行计算,或者两个数与两个数进行计算得到的结果与下一个数进行计算。
public static void main(String[] args) {
System.out.println("本程序为简单的四则运算,举例,输入a=10,b=20,运算符=*,即得到结果a*b=10*20=200,若想继续往下运算,则得到的结果会自动赋值给下一次的a");
boolean k = true; //定义循环条件k值,要先进行循环,赋值为真,后面通过if判断用户输入来改变k的值
Scanner sc = new Scanner(System.in);
System.out.print("请输入a="); //输入第一个进行运算的数字,放在循环体前面是因为不想再用多个变量
double a = sc.nextDouble();
while (k){ //若k为ture则无限循环
System.out.println("当前a="+a); // 显示当前a的值为多少,放在循环体内主要是因为清零操作
System.out.print("请输入b="); //输入b的值
double b = sc.nextDouble();
System.out.println("当前输入a="+a+" "+"当前输入b="+b); //输出当前a,b的值
System.out.print("请输入运算符:"); //输入运算符
String c = sc.next();
while(!c.equals("+") && !c.equals("-") && !c.equals("*") && !c.equals("/")) { //判断输入的运算符是否合法
System.out.println("运算符不合法,请重新输入+-*/:");
c = sc.next();
}
System.out.println("当前运算公式为:"+a+c+b); //输出当前运算公式,即a +-*/ b
a = four(a,b,c); // 此处将运算结果重新赋值给a,因为后面如果需要接着运算的话,a与b运算的结果就应当重新为a值
System.out.println("运算结果为:"+a); //输出结果
System.out.print("是否继续运行?Y=是,C=清零,其他=结束:"); //选择继续,清零,退出
String d = sc.next();
if(d.equals("C")){ //判断
System.out.print("请重新输入a="); //判断是否C,决定是否要对a重新赋值,赋值之后重新进入循环,此处并未改变k的值,不往下运行else,k值一直为true
a = sc.nextDouble();
}else {
k = d.equals("Y"); //判断是否输入Y ,若输入Y 则赋值k=true,若输入非Y,则k=false
}
}
sc.close();
}
// four 方法 四则运算
public static double four(double a , double b , String c ){ //多变量 a,b为浮点型对应输入需要计算的数据,c为字符串对应输入的计算符号
switch (c){
case "+": //加法
return a+b;
case "-": //减法
return a-b;
case "*": //乘法
return a*b;
case "/": //除法
return a/b;
default: // 这段代码好像并没啥意义,因为加了判断,除了+-*/输入其他的会让用户再次输入,此时并未调用four方法,这个0不可能会返回
return 0;
}
}
}