Demo1:
利用switch-case功能实现:
public static void main(String[] args) {
// System.out.println(counter(12, "+", 3));
// System.out.println(counter(12.45, "%", 19.34));
// System.out.println(12.45 % 19.34);
Scanner scanner = new Scanner(System.in);
System.out.println("使用next()方式输入");
System.out.println("请输入第一个数字:");
if (scanner.hasNextDouble()) {
number1 = scanner.nextDouble();
System.out.println("请输入运算符:");
String operator = scanner.next();
System.out.println("请输入第二个运算符");
number2 = scanner.nextDouble();
double result = 0;
switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
case "%":
result = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
System.out.println("计算结果为:" + number1 + operator + number2 + "=" + result);
} else {
System.out.println("输入有误!!!");
}
}
}
Demo2:
写为方法的形式:
这里写了两个counter的方法,第二个counter为第一个counter方法的重写。
若用户给出的参数是整数就调用第二个方法(取值范围为:-2^31 ---- 2^31-1 ,即:-2147483648 - 2147483647),给出的参数是小数则调用第一个方法(取值范围为-2^1024 ~ +2^1024(-1.79E+308 ~ +1.79E+308))
public static double counter(double number1, String system, double number2) {
double result1 = 0;
switch (system) {
case "+":
result1 = number1 + number2;
break;
case "-":
result1 = number1 - number2;
break;
case "*":
result1 = number1 * number2;
break;
case "/":
result1 = number1 / number2;
break;
case "%":
result1 = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
return result1;
}
public static int counter(int number1, String system, int number2) {
int result1 = 0;
switch (system) {
case "+":
result1 = number1 + number2;
break;
case "-":
result1 = number1 - number2;
break;
case "*":
result1 = number1 * number2;
break;
case "/":
result1 = number1 / number2;
break;
case "%":
result1 = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
return result1;
}
整体代码
有些地方没有考虑周全,还请大家多多指教
package com.complete;
import java.util.Scanner;
public class Calculator {
private static double number1;
private static double number2;
//计算器功能实现
public static void main(String[] args) {
System.out.println(counter(12, "+", 3));
System.out.println(counter(12.45, "%", 19.34));
System.out.println(12.45 % 19.34);
Scanner scanner = new Scanner(System.in);
System.out.println("使用next()方式输入");
System.out.println("请输入第一个数字:");
if (scanner.hasNextDouble()) {
number1 = scanner.nextDouble();
System.out.println("请输入运算符:");
String operator = scanner.next();
System.out.println("请输入第二个运算符");
number2 = scanner.nextDouble();
double result = 0;
switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
case "%":
result = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
System.out.println("计算结果为:" + number1 + operator + number2 + "=" + result);
} else {
System.out.println("输入有误!!!");
}
System.out.println(counter(number1,"*",number2));
}
public static double counter(double number1, String system, double number2) {
double result1 = 0;
switch (system) {
case "+":
result1 = number1 + number2;
break;
case "-":
result1 = number1 - number2;
break;
case "*":
result1 = number1 * number2;
break;
case "/":
result1 = number1 / number2;
break;
case "%":
result1 = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
return result1;
}
public static int counter(int number1, String system, int number2) {
int result1 = 0;
switch (system) {
case "+":
result1 = number1 + number2;
break;
case "-":
result1 = number1 - number2;
break;
case "*":
result1 = number1 * number2;
break;
case "/":
result1 = number1 / number2;
break;
case "%":
result1 = number1 % number2;
break;
default:
System.out.println("您的输入不合法!!!");
}
return result1;
}
}