变量与数据类型 — Java
这是什么以及为什么需要它?
想象一下你在玩电脑游戏。你有一个背包——里面装着各种物品:剑、生命药水、藏宝图。在编程中,这样的“背包”被称为变量。它是一个小盒子,你可以把一些信息放进去并给它起个名字。
为什么需要它?假设你正在编写一个向用户祝贺生日的程序。用户名可能不同——今天是“玛莎”,明天是“佩佳”。你不必每次都重写代码,而是创建一个变量имя,然后一次性将需要的名字存入其中。程序会自动将其插入到祝贺文本中!
现在来说数据类型。回到背包。你不会把苹果放在装硬币的口袋里,也不会把硬币放在装地图的口袋里。在Java中,也有不同的“口袋”来装不同的东西:
- 数字(整数和小数)
- 单词和字母(文本)
- 真/假(是或否)
Java是一种严格的语言。它要求你提前声明:“这个盒子里只能放整数!”或者“这里只能放文本!”。Python没有这个要求——你可以把任何东西放在任何地方。但在Java中,这有助于避免错误。想象一下,你不小心把水放进了装硬币的口袋——硬币会坏掉。Java不会让你这样做!
让我们按顺序来理解。首先学习如何创建变量,然后了解有哪些数据类型以及它们为什么需要。
带解释的代码示例
示例1:第一个变量——你好,世界!
从最简单的开始。创建一个存储文本(单词或短语)的变量。在Java中,文本使用String类型(首字母大写!)。
// 声明(创建)一个名为"приветствие"的变量
// 类型为String —— 表示我们将存储文本
String приветствие;
// 现在将值放入其中(引号内的文本)
приветствие = "Привет, мир!";
// 现在将变量的内容输出到屏幕
System.out.println(приветствие);
// 屏幕上将显示:Привет, мир!
给新手的解释:
String是“字符串”类型(文本)。在Python中你只需写приветствие = "Привет, мир!",但在Java中你需要先声明变量的类型。- 每条命令末尾的分号
;就像句子末尾的句号。没有它,Java就无法理解命令在哪里结束。 System.out.println()是“打印并换行”的命令。就像Python中的print()。
你可以将创建和赋值合并到一行中:
// 创建变量并立即将值放入其中
String имя = "Алиса";
System.out.print("Привет, ");
System.out.println(имя);
// 屏幕上显示:Привет, Алиса
注意:System.out.print()(不带ln)不会将光标移到新行,而是在同一行继续打印。
示例2:整数——数苹果
对于整数(没有小数部分),Java使用int类型(来自integer——整数)。
// 声明一个变量用于存储苹果数量
int яблоки;
// 放入数字10
яблоки = 10;
// 可以进行数学运算!
int груши = 5; // 创建并立即放入5
int всего_фруктов; // 只创建,暂时为空
// 将苹果和梨相加
всего_фруктов = яблоки + груши;
// 输出结果
System.out.print("Всего фруктов: ");
System.out.println(всего_фруктов);
// 屏幕上显示:Всего фруктов: 15
需要记住的重要事项:
- 变量名要连写或用下划线连接。不能使用空格。
- 数学运算与现实生活一样:
+、-、*(乘)、/(除)。 - 与Python不同,在Java中,如果变量声明为
int,你不能直接写яблоки = "десять"。Java会说:“错误!你承诺了数字,却给了文本!”
让我们试着计算一下,如果平均分给3个朋友,每人能得到多少个苹果:
int яблоки = 10;
int друзей = 3;
// 将苹果分给朋友(注意!整数除以整数——结果还是整数)
int каждому = яблоки / друзей;
System.out.println("Каждому другу достанется " + каждому + " яблок");
// 屏幕上显示:Каждому другу достанется 3 яблок
陷阱:10除以3是3.333...,但int会丢弃小数部分!Java不会四舍五入,而是直接截断“尾巴”。如果需要精确除法,请使用double(看下一个示例)。
示例3:小数——钱和身高
对于带小数部分的数字(例如3.14或2.5),Java有double和float类型。我们将使用double——它更精确。
// 披萨价格——450卢布50戈比
double цена_пиццы = 450.50;
// 买多少披萨?
int количество = 3;
// 计算总价
double общая_стоимость = цена_пиццы * количество;
System.out.println("Общая стоимость: " + общая_стоимость + " рублей");
// 屏幕上显示:Общая стоимость: 1351.5 рублей
重要! 在Java中,小数部分用点号分隔,而不是逗号。450,50会导致错误。记住:对于计算机来说,点号就是“小数逗号”。
另一个例子——计算学校的平均分:
double математика = 4.5;
double русский = 3.0;
double физика = 5.0;
// 相加并除以科目数量
double средний_балл = (математика + русский + физика) / 3;
System.out.println("Средний балл: " + средний_балл);
// 屏幕上显示:Средний балл: 4.166666666666667
看到小数点后有多少位数字了吗?这很正常。如果只需要显