第 02 课:变量、数据类型、运算与键盘输入
本课目标
学完后,你应当能够:
- 用变量保存整数、小数、文字和真假状态。
- 修改变量并完成基本运算。
- 使用
Scanner接收键盘输入。 - 看懂常见的类型错误。
1. 用 IDEA 打开学习目录
- 打开 IDEA,选择Open。
- 打开
C:\Users\26439\Desktop\java学习。 - 如果提示选择 SDK,选本机的JDK 17。
- 打开
代码/02-变量与输入/ProfileCard.java。 - 点击
main左边的绿色三角运行。
若中文乱码,在 IDEA 的Settings → Editor → File Encodings中把 Global Encoding 和 Project Encoding 设为 UTF-8。
2. 变量是什么
变量可以理解成一个“带名字、有限定类型的盒子”:
intage=20;int:盒子只能放整数。age:变量名,以后用它找到这个值。=:把右边的值赋给左边,不是数学中的“相等”。20:当前保存的值。
变量可以改变:
intscore=60;score=80;score=score+5;// 现在是 85第二次赋值时不再写int,因为变量已经声明过了。
3. 目前最常用的数据类型
| 类型 | 保存什么 | 示例 |
|---|---|---|
int | 整数 | int age = 20; |
long | 很大的整数 | long population = 1_400_000_000L; |
double | 小数 | double price = 19.9; |
boolean | 真或假 | boolean employed = false; |
char | 单个字符,使用单引号 | char level = 'A'; |
String | 一段文本,使用双引号 | String name = "小明"; |
注意:String首字母大写,因为它不是基本数据类型,而是一个类。暂时先会用,面向对象阶段再解释。
常见错误:
intage="20";// 错:文字不能直接放进整数变量charlevel="A";// 错:char 要用单引号Stringname='小明';// 错:String 要用双引号4. 运算和类型
inta=7;intb=2;System.out.println(a+b);// 9System.out.println(a-b);// 5System.out.println(a*b);// 14System.out.println(a/b);// 3,不是 3.5System.out.println(a%b);// 1,余数两个int相除,结果仍是int,小数部分会被丢掉。想得到小数:
doubleresult=(double)a/b;// 3.5(double) a称为类型转换:先把a当成小数参与运算。
字符串遇到+表示拼接:
Stringname="小明";intage=20;System.out.println("我叫"+name+",今年"+age+"岁");5. 使用 Scanner 接收输入
先导入,再创建,再读取:
importjava.util.Scanner;Scannerscanner=newScanner(System.in);Stringname=scanner.nextLine();// 读取一整行文字intage=scanner.nextInt();// 读取整数doublehours=scanner.nextDouble();// 读取小数scanner.close();如果nextInt()期待整数,你却输入abc或1.5,程序会抛出InputMismatchException。这说明输入不符合程序要求;异常处理以后专门学习。
6. 先运行完整示例
运行代码/02-变量与输入/ProfileCard.java,尝试输入:
小明 20 2.5然后修改输入,观察每周学习时间怎样变化。不要只看代码,至少亲手运行两次。
7. 独立练习:学习计划计算器
打开LearningPlanCalculator.java。独立练习现已补全,可以运行后对照下面的关键代码:
doublehoursPerWeek=daysPerWeek*hoursPerDay;doubletotalHours=hoursPerWeek*totalWeeks;System.out.println(name+",你每周计划学习 "+hoursPerWeek+" 小时。");System.out.println("坚持 "+totalWeeks+" 周,总计约 "+totalHours+" 小时。");程序需要:
- 输入姓名。
- 输入每周学习天数。
- 输入每天学习小时数。
- 计算每周学习小时数。
- 计算坚持 24 周的总小时数。
- 输出一段完整的学习计划。
例如输入:
小明 6 2.5结果应该包含:
小明,你每周计划学习 15.0 小时。 坚持 24 周,总计约 360.0 小时。8. 三个检查题
int x = 5 / 2;中,x是多少?为什么?String使用单引号还是双引号?char呢?int age = "18";为什么不能编译?
答案:
x是2。5和2都是int,因此执行整数除法,小数部分直接丢弃。String使用双引号,例如"Java";char使用单引号,例如'J'。"18"的类型是String,而age要求int,类型不兼容。可用Integer.parseInt("18")转换,但当前从Scanner.nextInt()直接读取即可。
下一课进入if / else,让程序真正开始“做决定”。