练习:
设计一个计算器。
import java.util.Scanner; public class Calculator { private float add(float a, float b){ return (a+b); } //减法 因为不确定输入的是小数还是整数,所以应该使用浮点型数据 private float subtraction(float a, float b){ return (a-b); } private float multiply(float a, float b){ return (a*b); } //除法 private float division(float a, float b){ return (a/b); } public void calculator() { Scanner input1 = new Scanner(System.in); System.out.println("请输入第一个数字: "); String one = input1.nextLine(); //将字符转换为浮点型 先将输入信息存为字符串型,然后转换为浮点型, 可以使代码更加灵活简单,如果直接使用Float类型的接收的话 会很麻烦,自己可以试一下 float a = Float.parseFloat(one); while (true) { System.out.println("请输入符号: "); String b = input1.nextLine(); //判断是否需要继续运算 if (b.equals("=")) { System.out.println("计算结束."); break; } //判断符号是否正确 if(!(b.equals("+") || b.equals("-") || b.equals("*") || b.equals("/"))){ System.out.println("输入的符号有误 ! "); //如果是break的话 若符号错误 会结束运算。continue的话 会重新输入符号 继续运算 continue; } System.out.println("请输入第二个数字"); String two = input1.nextLine(); float c = Float.parseFloat(two); //判断符号是否正确 switch (b) { case "+":
//使用a可以看做 第二次运算时 的第一个数,可以减少代码数量
a = this.add(a, c); break; case "/": a = this.division(a, c); break; case "*": a = this.multiply(a, c); break; case "-": a = this.subtraction(a, c); break; } System.out.println(a); } } } ----------------------------------------------------------------- public class Test { public static void main(String[] args){ Calculator z = new Calculator(); z.calculator(); } }
此题应该注意Scanner的读取。(此处借用阿拓老师的图)