Appearance
项目 3:简易计算器
项目概述
简易计算器是一个基于 Java 控制台的应用,用于执行基本的算术运算,如加法、减法、乘法和除法。它支持循环计算,并且能够处理异常情况。
功能需求
- 支持基本运算:支持加减乘除四则运算
- 循环计算:用户可以连续进行多次计算
- 异常处理:处理除数为零等异常情况
- 用户友好:提供清晰的操作界面和提示信息
技术实现
java
import java.util.Scanner;
public class SimpleCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean continueCalculating = true;
while (continueCalculating) {
System.out.println("===================================");
System.out.println(" 简易计算器");
System.out.println("===================================");
System.out.println("请选择运算类型:");
System.out.println("1. 加法 (+)");
System.out.println("2. 减法 (-)");
System.out.println("3. 乘法 (*)");
System.out.println("4. 除法 (/)");
System.out.println("===================================");
int choice = 0;
boolean validChoice = false;
// 验证用户选择
while (!validChoice) {
System.out.print("请输入你的选择 (1-4): ");
if (scanner.hasNextInt()) {
choice = scanner.nextInt();
if (choice >= 1 && choice <= 4) {
validChoice = true;
} else {
System.out.println("输入错误,请输入 1-4 之间的数字。");
}
} else {
System.out.println("输入错误,请输入数字。");
scanner.next(); // 消费无效输入
}
}
// 输入操作数
double num1 = 0, num2 = 0;
boolean validInput = false;
while (!validInput) {
System.out.print("请输入第一个数字: ");
if (scanner.hasNextDouble()) {
num1 = scanner.nextDouble();
validInput = true;
} else {
System.out.println("输入错误,请输入数字。");
scanner.next(); // 消费无效输入
}
}
validInput = false;
while (!validInput) {
System.out.print("请输入第二个数字: ");
if (scanner.hasNextDouble()) {
num2 = scanner.nextDouble();
validInput = true;
} else {
System.out.println("输入错误,请输入数字。");
scanner.next(); // 消费无效输入
}
}
// 执行计算
double result = 0;
boolean calculationSuccess = true;
switch (choice) {
case 1:
result = num1 + num2;
break;
case 2:
result = num1 - num2;
break;
case 3:
result = num1 * num2;
break;
case 4:
if (num2 == 0) {
System.out.println("错误:除数不能为零!");
calculationSuccess = false;
} else {
result = num1 / num2;
}
break;
}
// 显示结果
if (calculationSuccess) {
System.out.println("===================================");
System.out.println("计算结果:");
switch (choice) {
case 1:
System.out.println(num1 + " + " + num2 + " = " + result);
break;
case 2:
System.out.println(num1 + " - " + num2 + " = " + result);
break;
case 3:
System.out.println(num1 + " * " + num2 + " = " + result);
break;
case 4:
System.out.println(num1 + " / " + num2 + " = " + result);
break;
}
System.out.println("===================================");
}
// 询问是否继续计算
System.out.print("是否继续计算?(y/n): ");
scanner.nextLine(); // 消费换行符
String continueInput = scanner.nextLine();
continueCalculating = continueInput.equalsIgnoreCase("y");
}
System.out.println("计算器已关闭,谢谢使用!");
scanner.close();
}
}代码解析
导入包:
java.util.Scanner:用于读取用户输入
主方法:
- 创建 Scanner 对象
- 使用
continueCalculating变量控制计算循环
计算循环:
- 显示计算器菜单
- 读取用户选择的运算类型
- 验证用户选择的有效性
- 读取两个操作数
- 验证操作数的有效性
- 根据选择执行相应的运算
- 处理异常情况(如除数为零)
- 显示计算结果
- 询问用户是否继续计算
异常处理:
- 处理除数为零的情况
- 验证用户输入的有效性
结束计算:
- 显示结束信息
- 关闭 Scanner
运行示例
运行结果
===================================
简易计算器
===================================
请选择运算类型:
1. 加法 (+)
2. 减法 (-)
3. 乘法 (*)
4. 除法 (/)
===================================
请输入你的选择 (1-4): 1
请输入第一个数字: 10
请输入第二个数字: 5
===================================
计算结果:
10.0 + 5.0 = 15.0
===================================
是否继续计算?(y/n): y
===================================
简易计算器
===================================
请选择运算类型:
1. 加法 (+)
2. 减法 (-)
3. 乘法 (*)
4. 除法 (/)
===================================
请输入你的选择 (1-4): 4
请输入第一个数字: 10
请输入第二个数字: 0
错误:除数不能为零!
是否继续计算?(y/n): y
===================================
简易计算器
===================================
请选择运算类型:
1. 加法 (+)
2. 减法 (-)
3. 乘法 (*)
4. 除法 (/)
===================================
请输入你的选择 (1-4): 3
请输入第一个数字: 7.5
请输入第二个数字: 2
===================================
计算结果:
7.5 * 2.0 = 15.0
===================================
是否继续计算?(y/n): n
计算器已关闭,谢谢使用!扩展功能
更多运算:添加幂运算、平方根、取模等更多运算类型
连续计算:支持上次计算结果作为下次计算的第一个操作数
历史记录:保存计算历史,允许查看之前的计算结果
图形界面:使用 Swing 或 JavaFX 实现图形界面
科学计算器:添加科学计算功能,如三角函数、对数等
总结
简易计算器是一个实用的 Java 控制台应用,它演示了如何使用基本的 Java 技术实现一个功能完整的计算器。通过这个项目,你可以学习:
- 用户交互:如何使用 Scanner 读取用户输入
- 循环控制:如何使用 while 循环实现连续计算
- 条件判断:如何使用 switch 语句根据用户选择执行不同的运算
- 异常处理:如何处理除数为零等异常情况
- 输入验证:如何验证用户输入的有效性
这个项目是一个很好的 Java 入门练习,它涵盖了 Java 基础编程的许多重要概念,同时也是一个实用的小工具。
