☕ Java

算术运算 — Java

这是什么?为什么需要它?

想象一下,你是一家糖果店的收银员。你有一个装有10块巧克力的盒子,来了一个想买3块的顾客。还会剩下多少?如果明天再送来5盒,每盒10块巧克力——总共会有多少?要计算这些,不一定非要一根一根地数糖果。只需执行算术运算——加法、减法、乘法和除法即可。

在Java中,这些运算看起来和数学中几乎一样,只是乘号“×”我们写成*,除号“÷”写成/。计算机就像那个收银员,只是速度非常快,而且从不犯错(前提是你的指令没有错)。

为什么在编程中需要它?想象一下,你在写一个游戏,主角在收集金币。每秒都需要将收集到的金币数量加到他的分数上。或者你在为数学课做一个计算器。或者一个计算距离新年还有多少天的程序。到处都需要算术运算。

Java中有5种基本的算术运算:

  • + — 加法(和数学中一样)
  • - — 减法
  • * — 乘法
  • / — 除法(只是在Java中处理整数时有个小技巧)
  • % — 取余(这是新的!它表示整除后剩下多少)

我们先约定好:在Java中,和Python一样,有数据类型。对于数字,最常用的是int(整数,例如5, -3, 100)和double(小数,例如3.14, -0.5)。如果你在同一个运算中混合使用它们——Java自己会处理,但有时会导致意想不到的结果(我们会在错误部分讨论)。

与Python不同,在Python中你可以直接写print(2 + 3)就能运行,而在Java中,你需要先创建一个类和main方法。别害怕——这只是你程序的“容器”。下面所有的例子都将在这个容器内部。

带解释的代码示例

示例1:加法和减法(像生活中一样)

假设你原来有15卢布,你又找到了7卢布,然后花了10卢布买冰淇淋。还剩多少?

public class Main {
    public static void main(String[] args) {
        // 声明变量——这就像带标签的盒子
        int bylo = 15;          // 原来有15卢布
        int nashel = 7;         // 找到了7卢布
        int potratil = 10;      // 花了10卢布

        // 计算:原来 + 找到 - 花掉
        int ostalos = bylo + nashel - potratil;

        // 将结果显示在屏幕上
        // 在Java中,使用 System.out.println() 进行输出
        System.out.println("你还剩下: " + ostalos + " 卢布");
        // 屏幕上将显示:你还剩下: 12 卢布
    }
}

它是如何工作的: Java像数学中一样从左到右执行操作。首先15 + 7 = 22,然后22 - 10 = 12。结果保存在变量ostalos中。在System.out.println中的+符号用于拼接文本和数字——这被称为字符串连接。在Python中,这使用逗号或f-strings,而在Java中则使用加号。

示例2:乘法(计算房间面积)

你决定要知道你的房间有多少平方米。长度是6米,宽度是4米。

public class Main {
    public static void main(String[] args) {
        int dlina = 6;
        int shirina = 4;

        // 乘法:面积 = 长 * 宽
        int ploshad = dlina * shirina;

        System.out.println("房间面积: " + ploshad + " 平方米");
        // 输出:房间面积: 24 平方米

        // 现在计算周长:(长 + 宽) * 2
        int perimetr = (dlina + shirina) * 2;
        System.out.println("房间周长: " + perimetr + " 米");
        // 输出:房间周长: 20 米
    }
}

注意括号! 在Java中,和数学中一样,首先执行括号内的操作。如果我们写成dlina + shirina * 2,那么会先计算4乘以2(得到8),然后加上6——结果是14,而不是20。括号改变了顺序!

在Python中,括号的工作方式完全相同——这是所有编程语言的通用规则。

示例3:除法和取余(分披萨)

你有23块披萨,和5个朋友。如果平均分,每人能得到多少块?会剩下多少给你?

public class Main {
    public static void main(String[] args) {
        int kuskov = 23;
        int druzei = 5;

        // 整数除法:23 / 5 = 4 (余数 3)
        // 如果两个数都是整数,Java会丢弃小数部分!
        int kazhdomu = kuskov / druzei;
        System.out.println("每个朋友: " + kazhdomu + " 块");
        // 输出:每个朋友: 4 块

        // 取余:23 % 5 = 3
        int ostatok = kuskov % druzei;
        System.out.println("留给你的: " + ostatok + " 块");
        // 输出:留给你的: 3 块

        // 验证:4 * 5 + 3 = 23 — 完全正确!
    }
}

重要的一点: 在Java中,如果你用整数除以整数,结果也将是整数——小数部分被直接丢弃(不是四舍五入,而是直接丢弃!)。23 / 5 = 4,而不是4.6。如果需要得到小数结果,至少一个数必须是小数(例如,23.0 / 5 或 23 / 5.0)。在Python 3中,整数除法默认得到小数结果,而整数除法使用//。Java中没有这样的运算符——需要显式指定类型。

运算符%(取