Java简易四则运算计算器
Java初学者,试着弄一下,如果错误以及建议请指出。
import java.util.Scanner;
public class Calculate {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
float num1 = 0,num2 = 0;
System.out.println("请输入第一个数字:");
if(scanner.hasNextFloat()){
num1 = scanner.nextFloat();
}else {
System.out.println("请输入正确的数字");
}
System.out.println("支持的运算符有+,-,*,/,^");
System.out.println("请输入运算符:");
String operator = scanner.next();
switch (operator){
case "+":
break;
case "-":
break;
case "*":
break;
case "/":
break;
case "^":
break;
default:
System.out.println("请输入合法的运算符:");
}
System.out.println("请输入第二个数字:");
if(scanner.hasNextFloat()){
num2 = scanner.nextFloat();
}else {
System.out.println("请输入正确的数字");
}
scanner.close();
switch (operator){
case "+":
System.out.println(num1+"+"+num2+"="+add(num1,num2));
break;
case "-":
System.out.println(num1+"-"+num2+"="+minus(num1,num2));
break;
case "*":
System.out.println(num1+"*"+num2+"="+multiply(num1,num2));
break;
case "/":
System.out.println(num1+"/"+num2+"="+devide(num1,num2));
case "^":
System.out.println(num1+"^"+num2+"="+power(num1,num2));
}
}
public static float add(float num1,float num2){
return num1 + num2;
}
public static float minus(float num1,float num2){
return num1 - num2;
}
public static float multiply(float num1,float num2){
return num1 * num2;
}
public static float devide(float num1,float num2){
return num1 / num2;
}
public static float power(float num1,float num2){
float result = (float) Math.pow(num1, num2);
return result;
}
}
本来想写出“如果输入的不是数字,跳转回输入数字的阶段”的效果,所以最初编写了如下代码
while(ture){
System.out.println("请输入第二个数字:");
if(scanner.hanNextFloat()){
num2 = scanner.nextFloat();
break;
}else {
System.out.printnl("请输入正确的数字");
}
}
但是在运行的时候如果输入的是数字,没有问题;如果输入的是其他的东西,就会无限循环输出
"请输入第二个数字:"和"请输入正确的数字"这两个字符串,暂时未发现原因。