news 2026/7/29 8:03:58

第 02 课:变量、数据类型、运算与键盘输入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 02 课:变量、数据类型、运算与键盘输入

第 02 课:变量、数据类型、运算与键盘输入

本课目标

学完后,你应当能够:

  1. 用变量保存整数、小数、文字和真假状态。
  2. 修改变量并完成基本运算。
  3. 使用Scanner接收键盘输入。
  4. 看懂常见的类型错误。

1. 用 IDEA 打开学习目录

  1. 打开 IDEA,选择Open
  2. 打开C:\Users\26439\Desktop\java学习
  3. 如果提示选择 SDK,选本机的JDK 17
  4. 打开代码/02-变量与输入/ProfileCard.java
  5. 点击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()期待整数,你却输入abc1.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+" 小时。");

程序需要:

  1. 输入姓名。
  2. 输入每周学习天数。
  3. 输入每天学习小时数。
  4. 计算每周学习小时数。
  5. 计算坚持 24 周的总小时数。
  6. 输出一段完整的学习计划。

例如输入:

小明 6 2.5

结果应该包含:

小明,你每周计划学习 15.0 小时。 坚持 24 周,总计约 360.0 小时。

8. 三个检查题

  1. int x = 5 / 2;中,x是多少?为什么?
  2. String使用单引号还是双引号?char呢?
  3. int age = "18";为什么不能编译?

答案:

  1. x252都是int,因此执行整数除法,小数部分直接丢弃。
  2. String使用双引号,例如"Java"char使用单引号,例如'J'
  3. "18"的类型是String,而age要求int,类型不兼容。可用Integer.parseInt("18")转换,但当前从Scanner.nextInt()直接读取即可。

下一课进入if / else,让程序真正开始“做决定”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 8:03:46

Shell函数进阶:从基础语法到生产级脚本模块化实战

1. 从“命令堆叠”到“模块化”:为什么你需要掌握Shell函数如果你写过超过50行的Shell脚本,大概率经历过这样的场景:一段用来检查日志文件是否存在的代码,在脚本的开头、中间和结尾各出现了一次,每次只是改了个文件名。…

作者头像 李华
网站建设 2026/7/29 8:03:22

STM32 HAL库SysTick配置与应用:从心跳定时器到RTOS时基

1. 项目概述:为什么SysTick是STM32的“心跳”玩过STM32的朋友都知道,定时器是单片机的核心外设之一,从简单的延时到复杂的PWM输出都离不开它。但在众多定时器中,有一个非常特殊的存在——系统滴答定时器,也就是SysTick…

作者头像 李华
网站建设 2026/7/29 8:02:23

薄荷:穿越千年的清凉之味

初秋午后,指尖捻起一片薄荷叶,轻轻揉搓,那股清冽的凉意便从叶脉间迸发出来,直抵鼻腔。这味道里藏着风——不是温吞的南风,而是穿林打叶的山风;藏着时节——不是万物蛰伏的深冬,而是暑气未消却已…

作者头像 李华
网站建设 2026/7/29 8:02:10

Arduino为何二十年不倒?从生态、教育到效率工具的深度解析

1. 开源硬件领域的“常青树”:Arduino现象 在嵌入式开发和创客圈子里混了十几年,我见过无数技术平台和开发板如流星般划过天际,火一阵子就销声匿迹。但有一个名字,从2005年诞生至今,近二十年过去了,依然活跃…

作者头像 李华
网站建设 2026/7/29 8:01:37

FireBeetle开发板供电全解析:从电源架构到实战避坑指南

1. 项目概述:为什么供电是FireBeetle的第一课 如果你刚拿到一块FireBeetle开发板,准备点亮第一个LED或者驱动一个舵机,我建议你先别急着写代码。我见过太多新手,包括我自己早期也犯过这个错误——兴冲冲地接上传感器、写好程序&am…

作者头像 李华
网站建设 2026/7/29 7:58:23

干掉成山的 if-else:工厂造、策略选,一文讲透两个模式的配合

大家好,我是晚安code。 你大概率见过这种支付代码:一个 pay() 方法里 if/else 塞了 6 个分支,微信、支付宝、银行卡各占一段,每加一个渠道就再往里堆一块。问起来永远一句「赶进度,先这样吧」。 这种「先这样」最后都会…

作者头像 李华