79 lines
2.5 KiB
Java
79 lines
2.5 KiB
Java
package day02;
|
||
|
||
/**
|
||
* 第 2 天:计算器 —— 变量、数据类型、运算符
|
||
* 目标:掌握 Java 基本数据类型和运算符
|
||
*
|
||
* 概念速查:
|
||
* int —— 整数(4 字节,约 ±21 亿)
|
||
* double —— 浮点数(8 字节,双精度)
|
||
* Scanner —— 从控制台读取用户输入
|
||
* + - * / % —— 加减乘除取余
|
||
*/
|
||
import java.util.Scanner;
|
||
|
||
public class Calculator {
|
||
public static void main(String[] args) {
|
||
Scanner scanner = new Scanner(System.in);
|
||
|
||
System.out.println("========== 简易计算器 ==========");
|
||
|
||
// 读取第一个数
|
||
System.out.print("请输入第一个数字: ");
|
||
double num1 = scanner.nextDouble();
|
||
|
||
// 读取运算符
|
||
System.out.print("请输入运算符 (+, -, *, /): ");
|
||
// 注意:next() 读取字符串,charAt(0) 取第一个字符
|
||
char operator = scanner.next().charAt(0);
|
||
|
||
// 读取第二个数
|
||
System.out.print("请输入第二个数字: ");
|
||
double num2 = scanner.nextDouble();
|
||
|
||
double result = 0;
|
||
boolean valid = true; // 标记运算是否合法
|
||
|
||
// 根据运算符执行不同运算
|
||
switch (operator) {
|
||
case '+':
|
||
result = num1 + num2;
|
||
break;
|
||
case '-':
|
||
result = num1 - num2;
|
||
break;
|
||
case '*':
|
||
result = num1 * num2;
|
||
break;
|
||
case '/':
|
||
// 除法需要特殊处理:除数不能为 0
|
||
if (num2 != 0) {
|
||
result = num1 / num2;
|
||
} else {
|
||
System.out.println("错误:除数不能为零!");
|
||
valid = false;
|
||
}
|
||
break;
|
||
default:
|
||
System.out.println("错误:不支持的运算符!");
|
||
valid = false;
|
||
}
|
||
|
||
// 输出结果
|
||
if (valid) {
|
||
System.out.println("----------------------------");
|
||
System.out.printf("%.2f %c %.2f = %.2f\n", num1, operator, num2, result);
|
||
}
|
||
|
||
// 额外练习:类型转换演示
|
||
System.out.println("\n--- 类型转换小实验 ---");
|
||
int a = 10;
|
||
int b = 3;
|
||
System.out.println("整数除法 10 / 3 = " + (a / b)); // 输出 3(截断)
|
||
System.out.println("浮点除法 10.0 / 3 = " + (10.0 / b)); // 输出 3.333...
|
||
System.out.println("取余 10 % 3 = " + (a % b)); // 输出 1
|
||
|
||
scanner.close();
|
||
}
|
||
}
|