困难
基本的
学习时间
30分钟
适合人群
零基础
开发语言
爪哇
开发环境 1.遍历数组
需要:
定义一个数组,数组元素为数字1-5,请显示输出“第一个数字为1”等。
想法:
定义一个 int 类型的数组。 由于要存储的元素是已知的java输出数组,所以数组用花括号 {} 初始化。 取出每一个元素,用一个int类型的变量接收,然后显示输出。
完成:
结果:
从运行结果来看,是正确的。
但是大家有没有发现一个问题,如果我要存储1-100的数字,然后取出每个元素进行显示输出呢? 那是不是一定要定义100个变量来接收这100个元素呢? 10,000 呢? 这种写法肯定是有问题的。
如果有办法把它们一个一个取出来,然后显示输出就好了。 出色地? 这种方法看起来像一个循环吗? 我循环取出每个元素,数组下标不是从0开始的吗? 我从0开始累加,一直累加到数组的最大下标。 我认为这是一个很好的方法。
给大家介绍一个数组的朋友,叫“遍历”,也叫“迭代”。 它们意味着数组中的每个元素都被环出。 使用的工具是循环语句。
2.for循环遍历数组
我们先看看for循环的格式:
for 循环由初始化表达式、条件表达式、步骤表达式和循环体组成。
需要:
将数字1-5存入数组,然后取出每个元素进行显示输出。 显示输出格式为“第x个元素是:x”。
想法:
定义一个 int 类型的数组。 因为我们已经知道数组中存储的元素是什么,所以我们使用大括号{}来初始化数组。 因为每个元素都需要取出来显示输出,所以用for循环一个一个取出来。 初始化表达式负责定义一个计数器,用于记录当前要取的元素的下标。 条件表达式负责判断计数器是否小于数组长度,因为如果下标超出,就会出现数组下标越界异常。 步骤表达式负责递增计数器。 循环体负责根据当前计数器取出数组中的元素,然后显示输出。
完成:
结果:
工作流程:
循环的第一遍,i = 0, i < 5 => true, number = numbers[0] => number = 1, i++ => i = 1;
第二个循环,i = 1, i < 5 => true, number = numbers[1] => number = 2, i++ => i = 2;
第三次循环java输出数组,i = 2, i < 5 => true, number = numbers[2] => number = 3, i++ => i = 3;
第四个循环,i = 3, i < 5 => true, number = numbers[3] => number = 4, i++ => i = 4;
循环第五次,i = 4, i < 5 => true, number = numbers[4] => number = 5, i++ => i = 5;
循环到第六次,i = 5, i < 5 => false,循环结束。
注意:
强烈推荐使用for循环遍历数组。
3.在遍历数组的同时
我们先来看看while循环的格式:
while 循环由条件表达式和循环体组成。
while循环和for循环的区别在于它没有初始化表达式和步进表达式,所以我们需要把初始化表达式放在循环之前,把步进表达式放在循环中。
需要:
将数字1-5存入数组,然后取出每个元素进行显示输出。 显示输出格式为“第x个元素是:x”。
想法:
定义一个 int 类型的数组。 因为我们已经知道数组中存储的元素是什么,所以我们使用大括号{}来初始化数组。 因为每个元素都需要取出来显示输出,所以用while循环一个一个取出来。 初始化表达式负责定义一个计数器,用于记录当前要取的元素的下标。 由于while循环和for循环结构的不同,初始化表达式应该在while循环之前完成。 条件表达式负责判断计数器是否小于数组长度,因为如果下标超出,就会出现数组下标越界异常。 步骤表达式负责递增计数器。 由于while循环和for循环结构的不同,step表达式应该放在while循环体中。 循环体负责根据当前计数器取出数组中的元素,然后显示输出。
完成:
结果:
注意:
累加计数器的动作应该放在循环的末尾。 因为计数器的原始值需要参与运算,所以不能先累加计数器的原始值,再参与运算。 比如计数器一开始的原值是0,然后进入循环体,突然累加起来。 本来要取数组下标0的元素,结果却取下标1的元素。 那么下标为0的元素永远取不到,所以累加计数器操作放在循环体的末尾。
4.do-while遍历数组
我们先看一下do-while循环的格式:
do-while 循环由条件表达式和循环体组成。 do-while和while循环的区别在于do-while会先执行一次循环体,然后判断下一次循环的条件表达式。
do-while循环和for循环的区别在于它没有初始化表达式和步进表达式,所以我们需要把初始化表达式放在循环之前,把步进表达式放在循环中。
需要:
将数字1-5存入数组,然后取出每个元素进行显示输出。 显示输出格式为“第x个元素是:x”。
想法:
定义一个 int 类型的数组。 因为我们已经知道数组中存储的元素是什么,所以我们使用大括号{}来初始化数组。 因为每个元素都需要取出来显示输出,所以用while循环一个一个取出来。 初始化表达式负责定义一个计数器,用于记录当前要取的元素的下标。 由于do-while循环和for循环的结构不同,初始化表达式应该在do-while循环之前完成。 条件表达式负责判断计数器是否小于数组长度,因为如果下标超出,就会出现数组下标越界异常。 步骤表达式负责递增计数器。 由于do-while循环和for循环的结构不同,step表达式应该放在do-while循环中。 循环体负责根据当前计数器取出数组中的元素,然后显示输出。
完成:
结果:
注意:
使用 do-while 遍历数组已被弃用。
原因:
如果数组中没有元素,我们就执行循环体中的内容,导致程序异常。 这种做法是不正确的。 再者,当我们给出一个超过数组最大下标的值时,也会导致程序异常,因为没有通过条件表达式的判断。 因此,请不要使用do-while 遍历数组。
数组基础小结:章节小结
至此,Java中数组详解的讲解就告一段落了,更多内容请继续关注。
回答提问