代码如下:
package com.etime.gc;//包名
import java.util.Scanner;//导入的Scanner库,目的是输入操作数
public class Calculator {
//设计一个方法 加法运算
public float add(float a,float b){
return a+b;
}
//设计一个方法 减法运算
public float subtract(float a,float b) {
return a - b;
}
//设计一个方法 乘法运算
public float multiply(float a,float b){
return a*b;
}
//设计一个方法 除法运算
public float divide(float a,float b){
return a/b;
}
//设计一个方法 控制计算器的流程
public void calculate(){
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个数字:");
String one=input.nextLine();
float a=Float.parseFloat(one);//转换one的值为float
//需要一个死循环
while (true) {
System.out.print("请输入符号:");
String symbol=input.nextLine();
if(symbol.equals("=")){ //退出循环
System.out.println("运行完毕!");
break;
}
if(!(symbol.equals("+")||symbol.equals("-")||symbol.equals("*")||symbol.equals("/"))){
System.out.println("输入的符号有误!");
continue;
}
System.out.print("请输入第二个数字:");
String two=input.nextLine();
float b=Float.parseFloat(two);
switch (symbol){
case "+":
a=this.add(a,b) ;
break;
case "-":
a=this.subtract(a,b) ;
break;
case "*":
a=this.multiply(a,b) ;
break;
case "/":
a=this.divide(a,b) ;
break;
}
System.out.println(a);
}
}
//主方法
public static void main(String[] args) {
Calculator c=new Calculator();
c.calculate();//调用这个方法
}
}
关于Scanner类及其中方法的使用
1.导包 java.util.Scanner
2.创建对象 Scanner input = new Scanner(System.in);
3.调用 int value = input.nextInt();String value = input.nextLine();等等
nextInt();nextFloat();nextByte();next();nextLine()
1.读取方式上来讲,大家都以回车符作为结束符号。
除了nextLine以外其余的方法都不读取回车符。
2.读取的返回结果来讲:nextInt–>int;nextFloat–float;nextByte()–byte;next–String;nextLine–>String。
next方法看到回车或空格都认为结束,nextLine只认为回车符结束。
例如:输入 “abc空格def空格g回车” 和 输入“abc空格def空格g回车”
next方法读出 “abc” ,而nextLine方法读出 “abc空格def空格g”。
3.利用包装类做String与基本类型的转化问题
int value = Integer.parseInt(“123”);//如果字符串不是一个整数形式,就会产生错误
Float.parseFloat(“123.34”)这种形式就可以。
为什么需要死循环呢?
因为计算器输入一个数之后,在输入符号,在输入一个数,然后运算;运算之后可以紧接着在输入一个符号和一个数然后和上一次的结果相运算,得到结果,这样的情况可以无限循环下去。用while(true){}可以使循环无限下去。
退出循环
上面说了,虽然是无限循环的情况,但是现实不可能会有一直循环运行的情况,这就需要用用一个判断来短处循环,而if(symbol.equals("=")){}刚好能实现这个功能,输入符号为等号就可以退出循环了。
如果输入加减乘除以外的符号那么就跳出此次循环,继续下一次循环。
运算结果使用浮点数来表示。