1. Java概述

1.1 Java语言发展史

语言:人与人交流沟通的表达方式
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling)
2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com
当前,我们课程使用的JDK版本:11.0

1.2 Java语言跨平台原理

Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。

1.3 JRE和JDK

JVM(Java Virtual Machine),Java虚拟机

JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API) JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具

总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。

1.4 JDK的下载和安装

1.4.1 下载

通过官方网站获取JDK
​ ​http://www.oracle.com​​注意:针对不同的操作系统,需要下载对应版本的JDK。

1.4.2 安装

傻瓜式安装,下一步即可。但默认的安装路径是在C:Program Files下,为方便统一管理建议修改安装路径,将与开发相关的软件都安装到一个目录下,例如:E:develop。
注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。

1.4.3 JDK的安装目录介绍

目录名称

说明

bin

该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。

conf

该路径下存放了JDK的相关配置文件。

include

该路径下存放了一些平台特定的头文件。

jmods

该路径下存放了JDK的各种模块。

legal

该路径下存放了JDK各模块的授权文档。

lib

该路径下存放了JDK工具的一些补充JAR包。

2. 第一个演示程序

2.1 常用DOS命令

在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令。
1、打开命令行窗口的方式:win + r打开运行窗口,输入cmd,回车。
2、常用命令及其作用

操作

说明

盘符名称:

盘符切换。E:回车,表示切换到E盘。

dir

查看当前路径下的内容。

cd 目录

进入单级目录。cd itterence

cd ..

回退到上一级目录。

cd 目录1目录2…

进入多级目录。cd itterenceJavaSE

cd

回退到盘符目录。

cls

清屏。

exit

退出命令提示符窗口。

2.2 Path环境变量的配置

2.2.1 为什么配置环境变量

开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。

2.2.2 配置环境变量步骤



如果命令提示符窗口是配合环境变量前打开的,需要关闭该窗口,重新打开一个窗口测试

2.3 HelloWorld案例

HelloWorld案例是指在计算机屏幕上输出“HelloWorld”这行文字。各种计算机语言都习惯使用该案例作为第一个演示案例。

2.3.1 Java程序开发运行流程

开发Java程序,需要三个步骤:编写程序,编译程序,运行程序。

2.3.2 HelloWorld案例的编写

1、新建文本文档文件,修改名称为HelloWorld.java。
2、用记事本打开HelloWorld.java文件,输写程序内容。

2.3.3 HelloWorld案例的编译和运行

存文件,打开命令行窗口,将目录切换至java文件所在目录,编译java文件生成class文件,运行class文件。

编译:javac 文件名.java
范例:javac HelloWorld.java
执行:java 类名
范例:java HelloWorld

2.4 HelloWorld案例常见问题(理解)

2.4.1 BUG

在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。

2.4.2 BUG的解决

1、具备识别BUG的能力:多看
2、具备分析BUG的能力:多思考,多查资料
3、具备解决BUG的能力:多尝试,多总结

2.4.3 HelloWorld案例常见问题

1、非法字符问题。Java中的符号都是英文格式的。
2、大小写问题。Java语言对大小写敏感(区分大小写)。
3、在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件。
4、编译命令后的java文件名需要带文件后缀.java
5、运行命令后的class文件名(类名)不带文件后缀.class …

2.5 Notepad++软件的安装和使用

2.5.1 什么要使用Notepad++软件

Notepad++功能比windows中的自带记事本功能强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++有行号,能够快速定位问题位置,还有语法高亮度显示、代码折叠等功能。而且它是免费的。

2.5.2 Notepad++软件安装

安装:傻瓜式安装,一直下一步即可。建议也安装到统一的开发软件目录下,比如E:develop。

2.5.3Notepad++软件配置

安装完毕之后,为了使用方便,做一个简单的配置:修改默认语言和编码。


3. java基础语法

3.1 注释

注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要。Java中的 注释分为三种:
单行注释。单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。

多行注释。多行注释的格式是使用/* 和 */将一段较长的注释括起来。

注意:多行注释不能嵌套使用。

文档注释。文档注释以 /** 开始,以 */ 结束。(以后讲)

3.2 关键字

关键字是指被java语言赋予了特殊含义的单词。
关键字的特点:关键字的字母全部小写。
常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。

3.3 常量

常量:在程序运行过程中,其值不可以发生改变的量。
Java中的常量分类:
字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、“abc”、"中国"等
整数常量 整数,例如:-10、0、88等
小数常量 小数,例如:-5.5、1.0、88.88等
字符常量 用单引号括起来的一个字符,例如:‘a’、‘5’、‘B’、'中’等
布尔常量 布尔值,表示真假,只有两个值true和false
空常量 一个特殊的值,空值,值为null
除空常量外,其他常量均可使用输出语句直接输出。

3.4 数据类型

3.4.1 计算机存储单元

我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位 (bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最基本的存储单元叫“字节(byte)”,
通常用大写字母”B”表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,其换算单位如下:
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

3.4.2 Java中的数据类型

Java是一个强类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括基本数据类型和引用数据类型两种。


Java中的基本数据类型:

数据类型

关键字

内存占用

取值范围

整数类型

byte

1

-128~127


short

2

-32768~32767


int(默认)

4

-2的31次方到2的31次方-1


long

8

-2的63次方到2的63次方-1

浮点类型

float

4

负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到 3.402823E+38


double(默认)

8

负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308

字符类型

char

2

0-65535

布尔 类型

boolean

1

true,false

说明: e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。在java中整数默认是int类型,浮点数默认是double类型。




3.5 变量

3.5.1 变量的定义

变量:在程序运行过程中,其值可以发生改变的量。

从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。

变量的定义格式:

数据类型 变量名 = 初始化值; // 声明变量并赋值
int age = 18;
System.out.println(age);

或者

// 先声明,后赋值(使用前赋值即可) 数据类型 变量名;
变量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);

还可以在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。但不建议使用这种方式,降低程序的可读性。

变量的使用:通过变量名访问即可。

3.5.2 使用变量时的注意事项

  1. 在同一对花括号中,变量名不能重复。
  2. 变量在使用之前,必须初始化(赋值)。
  3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
  4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

3.6 标识符

标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定:
小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写。
大驼峰式命名:类名
每个单词的首字母都大写。
另外,标识符的命名最好可以做到见名知意
例如:username、studentNumber等。

3.7 类型转换

在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。 自动类型转换:
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。例如:

强制类型转换:
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
例如:


说明:

  1. char类型的数据转换为int类型是按照码表中对应的int值进行计算的。比如在ASCII码表中,'a’对应97。
  1. 整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
  1. boolean类型不能与其他基本数据类型相互转换。

4. 运算符

4.1 算术运算符

4.1.1 运算符和表达式

运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:

+:是运算符,并且是算术运算符。
a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。

4.1.2 算术运算符

符号

作用

说明

+

参看小学一年级

-

参看小学一年级

*

参看小学二年级,与“×”相同

/

参看小学二年级,与“÷”相同

%

取余

获取的是两个数据做除法的余数

注意: /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

4.1.3 字符的“+”操作

char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:
‘a’ – 97 a-z是连续的,所以’b’对应的数值是98,'c’是99,依次递加
‘A’ – 65 A-Z是连续的,所以’B’对应的数值是66,'C’是67,依次递加
‘0’ – 48 0-9是连续的,所以’1’对应的数值是49,'2’是50,依次递加

算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char --> int --> long --> float --> double
例如:

tips:正是由于上述原因,所以在程序开发中我们很少使用byte或者short类型定义整数。也很少会使用char类型定义字符,而使用字符串类型,更不会使用char类型做算术运算。

4.1.4 字符串的“+”操作

当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。

System.out.println("itheima"+ 666); // 输出:itheima6661.

在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。

4.2 赋值运算符(应用)

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。

符号

作用

说明

=

赋值

a=10,将10赋值给变量a

+=

加后赋值

a+=b,将a+b的值给a

-=

减后赋值

a-=b,将a-b的值给a

*=

乘后赋值

a*=b,将a×b的值给a

/=

除后赋值

a/=b,将a÷b的商给a

%=

取余后赋值

a%=b,将a÷b的余数给a

注意:



扩展的赋值运算符隐含了强制类型转换。



4.3 自增自减运算符

符号

作用

说明

++

自增

变量的值加1

自减

变量的值减1

注意事项:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
最常见的用法:单独使用。

练习:

注意:通过此练习深刻理解自增和自减的规律,但实际开发中强烈建议不要写这样的代码!小心挨打!

4.4 关系运算符

关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。

符号

说明

==

a==b,判断a和b的值是否相等,成立为true,不成立为false

!=

a!=b,判断a和b的值是否不相等,成立为true,不成立为false

>

a>b,判断a是否大于b,成立为true,不成立为false

>=

a>=b,判断a是否大于等于b,成立为true,不成立为false

<

a

<=

a<=b,判断a是否小于等于b,成立为true,不成立为false

注意事项:


关系运算符的结果都是boolean类型,要么是true,要么是false。


千万不要把"==“误写成”=“,”=="是判断是否相等的关系,=是赋值。


4.5 逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。

符号

作用

说明

&

逻辑与

a&b,a和b都是true,结果为true,否则为false

|

逻辑或

a|b,a和b都是false,结果为false,否则为true

^

逻辑异或

a^b,a和b结果不同为true,相同为false

!

逻辑非

!a,结果和a的结果正好相反

短路逻辑运算符

符号

作用

说明

&&

短路与

作用和&相同,但是有短路效果

||

短路或

作用和

在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都 计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式 将不再参与运算。



4.6 三元运算符

三元运算符语法格式:

关系表达式 ? 表达式1 : 表达式2;

解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
举例:

三元运算符案例:
1、需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。

2、需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。

5. 数据输入

我们可以通过 Scanner 类来获取用户的输入。使用步骤如下:
1、导包。Scanner 类在java.util包下,所以需要将该类导入。导包的语句需要定义在类的上面。

import java.util.Scanner;

2、创建Scanner对象。

Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变

3、接收数据

int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。

示例:

改写三个和尚案例,数据使用键盘录入。

6. 流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

6.1 流程控制语句分类

顺序结构
分支结构(if, switch)
循环结构(for, while, do…while)

6.2 顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

顺序结构执行流程图:

6.3 分支结构之if语句

6.3.1 if语句格式1

格式:
if (关系表达式) {
语句体;
}

执行流程:
1首先计算关系表达式的值
2如果关系表达式的值为true就执行语句体
3如果关系表达式的值为false就不执行语句体
4继续执行后面的语句内容

示例:

6.3.2 if语句格式2

格式:
if (关系表达式) {
语句体1;
} else {
语句体2;
}

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体1
  3. 如果关系表达式的值为false就执行语句体2
  4. 继续执行后面的语句内容
    示例:

if语句案例:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
分析:

  1. 为了体现任意给出一个整数,采用键盘录入一个数据
  2. 判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构
  3. 判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
  4. 根据判定情况,在控制台输出对应的内容

6.3.3 if语句格式3

格式:
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}

else {
语句体n+1;
}

执行流程:

  1. 首先计算关系表达式1的值
  2. 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
  3. 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
  4. 如果没有任何关系表达式为true,就执行语句体n+1。

示例:
键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日

if语句格式3案例:
需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:

  1. 小明的考试成绩未知,可以使用键盘录入的方式获取值
  2. 由于奖励种类较多,属于多种判断,采用if…else…if格式实现
  3. 为每种判断设置对应的条件
  4. 为每种判断设置对应的奖励

7. switch语句

7.1 switch语句结构

格式

格式说明:

执行流程:

7.2 switch语句练习-春夏秋冬(应用)

8. for循环

8.1 for循环结构(掌握)

8.2 for循环练习-输出数据(应用)

8.3 for循环练习-求和

8.4 for循环练习-求偶数和

8.5 for循环练习-水仙花

  1. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取
  2. 获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数

8.6 for循环练习-统计水仙花数个数

9. while循环

9.1 while结构

9.2 while循环练习-珠穆朗玛峰

10. 循环细节

10.1 do…while循环结构

10.2 三种循环的区别

  1. for(;; ){}
  2. while(true){}
  3. do {} while(true);

10.3 跳转控制语句

10.4 循环嵌套

11. Random

11.1 Random产生随机数

  1. 导入包
    import java.util.Random;
  2. 创建对象
    Random r = new Random();
  3. 产生随机数
    int num = r.nextInt(10);
    解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19

11.2 Random练习-猜数字

12. IDEA开发工具

参见:IDEA工具安装详解.pdf
​​ ​IDEA工具安装详解.pdf​​

13. 数组

13.1 什么是数组

数组(array)是一种用于存储多个相同类型数据的存储模型

13.2 数组定义格式

13.2.1 第一种

数据类型[] 数组名

示例:

定义了一个int类型的数组,数组名是arr

13.2.2 第二种(不推荐)

数据类型 数组名[]

示例:

定义了一个int类型的变量,变量名是arr数组

13.3 数组动态初始化

13.3.1 什么是动态初始化

数组动态初始化就是只给定数组的长度,由系统给出默认初始化值

13.3.2 动态初始化格式

数据类型[] 数组名 = new 数据类型[数组长度];1.
int[] arr = new int[3];1.

13.3.3动态初始化格式详解

13.4 数组元素访问

13.4.1 什么是索引

每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。

这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。

13.4.2 访问数组元素格式

13.4.3 示例代码

13.5 内存分配

13.5.1 内存概述

内存是计算机中的重要原件,临时存储区域,作用是运行程序。

我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。

必须放进内存中才能运行,运行完毕后会清空内存。

Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。

13.5.2 java中的内存分配

区域名称

作用

寄存器

给CPU使用,和我们开发无关。

本地方法栈

JVM在使用操作系统功能的时候使用,和我们开发无关。

方法区

存储可以运行的class文件。

堆内存

存储对象或者数组,new来创建的,都存储在堆内存。

方法栈

方法运行时使用的内存,比如main方法运行,进入方法栈中执行。

13.6 单个数组的内存图

13.7 多个数组的内存图

13.8 多个数组指向相同内存图

13.9 数组静态初始化

13.9.1 什么是静态初始化

在创建数组时,直接将元素确定

13.9.2 静态初始化格式

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};1.
数据类型[] 数组名 = {元素1,元素2,...};1.

13.9.3 示例代码

13.10 数组操作的两个常见小问题

13.10.1 索引越界异常

数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。

程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

13.10.2 空指针异常

arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

13.11 数组遍历

13.12 数组最值

14. 方法概述

14.1 方法的概念

方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集


14.2. 方法的定义和调用

14.2.1 无参数方法定义和调用

14.2.2 方法调用过程图解

14.2.3 无参数方法的练习

14.3 带参数方法定义和调用

14.3.1 带参数方法定义和调用

14.3.2 形参和实参

  1. 形参:方法定义中的参数

等同于变量定义格式,例如:int number

  1. 实参:方法调用中的参数

等同于使用变量或常量,例如: 10 number

14.3.3 带参数方法练习

14.4 带返回值方法的定义和调用

14.4.1 带返回值方法定义和调用

14.4.2 带返回值方法练习

14.5 方法的注意事项

14.5.1 方法的注意事项

14.5.2 方法的通用格式

14.6 方法重载

14.6.1 方法重载

14.6.2 方法重载练习

14.7 方法的参数传递

14.7.1 方法参数传递基本类型

14.7.2 方法参数传递引用类型

14.7.3 数组遍历

14.7.4 数组最大值

15. Debug模式

15.1 什么是Debug模式

是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。

15.2 Debug模式操作流程【应用】

16. 基础练习

16.1 减肥计划if版本

16.1.1 案例需求

​ 输入星期数,显示今天的减肥活动
​ 周一:跑步
​ 周二:游泳
​ 周三:慢走
​ 周四:动感单车
​ 周五:拳击
​ 周六:爬山
​ 周日:好好吃一顿

16.1.2 代码实现

16.2 减肥计划switch版本

16.2.1 案例需求

​ 输入星期数,显示今天的减肥活动
​ 周一:跑步
​ 周二:游泳
​ 周三:慢走
​ 周四:动感单车
​ 周五:拳击
​ 周六:爬山
​ 周日:好好吃一顿

16.2.2 代码实现

16.3 逢七跳过

16.3.1 案例需求

​ 朋友聚会的时候可能会玩一个游戏:逢七过。
​ 规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
​ 为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
​ 这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。

16.3.2 代码实现

16.4 不死神兔

16.4.1 案例需求

​ 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
​ 假如兔子都不死,问第二十个月的兔子对数为多少?

16.4.2 代码实现

16.5 百钱白鸡

16.5.1 案例需求

​ 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
​ 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

16.5.2 代码实现

16.6 数组元素求和

16.6.1 案例需求

​ 有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
​ 要求是:求和的元素个位和十位都不能是7,并且只能是偶数

16.6.2 代码实现

16.7 判断两个数组是否相同

16.7.1 案例需求

定义一个方法,用于比较两个数组的内容是否相同

16.7.2 代码实现

public class Test07 {
    public static void main(String[] args) {
        
        int[] arr = {11, 22, 33, 44, 55};
        
        int[] arr2 = {11, 22, 33, 44, 5};
        
        boolean flag = compare(arr,arr2);
        
        System.out.println(flag);
    }
    
    
    public static boolean compare(int[] arr, int[] arr2) {
        
        if(arr.length != arr2.length) {
            return false;
        }
        
        for(int x=0; x

16.8 查找元素在数组中出现的索引位置

16.8.1 案例需求

已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引。

并在控制台输出找到的索引值。如果没有查找到,则输出-1

16.8.2 代码实现

16.9 数组元素反转

16.9.1 案例需求

​ 已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换,
​ 交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。

16.9.2 代码实现

16.10 评委打分

16.10.1 案例需求

​ 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
​ 选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

16.10.2 代码实现

文章知识点与官方知识档案匹配,可进一步学习相关知识

页面更新:2024-04-22

标签:数组   表达式   变量   语句   数据类型   定义   类型   代码   程序   方法

1 2 3 4 5

上滑加载更多 ↓
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top