Java 输入输出、控制流程与大数值处理详解
·
在 Java 编程中,输入输出、流程控制和数据处理是构建实用程序的基础能力。本文将系统讲解 Scanner 输入、控制流程语句及大数值处理方案,帮助你掌握这些核心编程技能。
一、Java 输入输出:与用户交互的桥梁
Java 提供了丰富的输入输出工具,其中Scanner类是处理用户输入的常用选择。
Scanner 类的核心方法
nextInt():读取整数输入nextLine():读取一行字符串(注意与其他方法联用时光标位置问题)nextDouble():读取双精度浮点数next():读取空格分隔的字符串
简易计算器实现示例
通过 Scanner 接收用户输入的运算数和运算符,结合分支语句实现基本运算:
import java.util.Scanner;
public class SimpleCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数:");
double num1 = scanner.nextDouble();
System.out.print("请输入运算符(+,-,*,/):");
String operator = scanner.next();
System.out.print("请输入第二个数:");
double num2 = scanner.nextDouble();
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 != 0) {
result = num1 / num2;
} else {
System.out.println("除数不能为0");
return;
}
break;
default:
System.out.println("运算符错误");
return;
}
System.out.println("结果:" + result);
scanner.close();
}
}
二、控制流程:程序的执行路线图
控制流程语句决定了程序的执行顺序,主要包括分支结构和循环结构。
1. 分支语句
-
if 判断:适用于复杂条件判断,支持多重嵌套
if (score >= 90) { System.out.println("优秀"); } else if (score >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); } -
switch 语句:适用于多值匹配场景(JDK7 + 支持字符串匹配)
switch (day) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; // 其他case... default: System.out.println("无效日期"); }
2. 循环语句
-
for 循环:适用于已知循环次数的场景
for (int i = 0; i < 10; i++) { System.out.println(i); } -
while 循环:适用于循环次数不确定的场景
int count = 0; while (count < 5) { System.out.println("计数:" + count); count++; }
3. 循环控制关键字
- break:立即终止当前循环(可配合标签跳出多重嵌套循环)
- continue:跳过本次循环剩余部分,直接进入下一次循环
// 跳出多重循环示例
outer: for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i * j > 6) {
break outer; // 直接跳出外层循环
}
System.out.println(i + "," + j);
}
}
三、大数值处理:高精度运算方案
普通数值类型(如 int、double)存在精度限制和范围约束,Java 提供了BigInteger和BigDecimal类处理高精度计算。
1. 适用场景
BigInteger:处理任意长度的整数运算BigDecimal:处理高精度小数运算,尤其适合金融、电商等对精度敏感的领域
2. 金融领域的精度问题
使用 double 进行货币计算可能导致精度丢失:
System.out.println(0.1 + 0.2); // 输出0.30000000000000004而非0.3
改用 BigDecimal 可避免此问题:
import java.math.BigDecimal;
public class FinancialCalculation {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
System.out.println(a.add(b)); // 正确输出0.3
}
}
3. 核心方法
BigInteger:add()、subtract()、multiply()、divide()BigDecimal:除上述方法外,还需注意设置精度和舍入模式(如setScale(2, RoundingMode.HALF_UP))
更多推荐
所有评论(0)