计算器案例
-
写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现
-
思路:
-
写4个方法:加减乘除
-
利用循环 + switch进行用户交互
-
传递需要操作的两个数
-
输出结果
-
import java.text.DecimalFormat;
import java.util.Scanner;
public class CalculateDemo01 {
public static void main(String[] args) {
// 创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
//DecimalFormat df = new DecimalFormat("#.##"); // 保留两位小数
while (true) {
System.out.println("\n=== 简易计算器 ===");
System.out.println("请输入第一个数字:");
double x = scanner.nextDouble();
System.out.println("请输入运算符号(+, -, *, /):");
String s = scanner.next(); // 这里用next()而不是nextLine()
System.out.println("请输入第二个数字:");
double y = scanner.nextDouble();
double result = 0;
boolean validOperation = true;
switch (s) {
case "+":
result = add(x, y);
break;
case "-":
result = sub(x, y);
break;
case "*":
result = multi(x, y);
break;
case "/":
if (y == 0) {
System.out.println("错误:除数不能为零!");
validOperation = false;
} else {
result = div(x, y);
}
break;
default:
System.out.println("不合法的运算符号");
validOperation = false;
}
if (validOperation) {
// String formattedResult = df.format(result);
String formattedResult = String.format("%.2f", result); // 保留两位小数
System.out.println("计算结果:" + x + " " + s + " " + y + " = " + formattedResult);
}
System.out.println("是否继续计算?(Yes/No)");
String continueCalc = scanner.next();
if (!continueCalc.equalsIgnoreCase("Yes")) {
System.out.println("感谢使用计算器,再见!");
break;
}
}
scanner.close();
}
public static double add(double a, double b) {
return a + b;
}
public static double sub(double a, double b) {
return a - b;
}
public static double multi(double a, double b) {
return a * b;
}
public static double div(double a, double b) {
return a / b;
}
}

-
循环结构:使用
while(true)循环让计算器可以持续运行 -
输入问题:采用
next(),避免输入换行符的问题 -
除法零检查:防止除以零的错误
-
用户交互:
-
添加清晰的提示信息
-
显示完整的计算表达式
-
添加继续计算的选项
-
-
优化了输出格式:让结果显示更清晰
387

被折叠的 条评论
为什么被折叠?



