首页 > 其他分享 >第三章《数组与循环》第6节:嵌套循环

第三章《数组与循环》第6节:嵌套循环

时间:2022-12-29 18:33:30浏览次数:55  
标签:外层 第三章 打印 嵌套循环 循环 数组 式子

​在Java语言中,允许循环当中再次出现循环。这种“循环套循环”的结构被称为嵌套循环。Java语言并没有限制循环嵌套的层数,所以循环可以实现无限层次的嵌套。此外,循环的嵌套也与循环的类型无关,因此任意两种循环都可以相互嵌套。

当嵌套循环在运行时,内层循环全部执行完毕外层循环才完成1次执行,而虚拟机每次执行外层循环时,内层循环都会重新从头执行。下面以打印二维数组元素为例来帮助各位读者理解嵌套循环的运行原理。在3.2小节中曾经讲过:二维数组是由多个一维数组构成的,而一维数组中又包含多个元素。因此,用嵌套循环打印二维数组的基本原理就是:内层循环负责打印一维数组的每一个元素,外层循环负责让打印一维数组元素的操作执行多次。以下是用嵌套循环打印二维数组的完整代码:​

【例03_10使用嵌套循环打印二维数组全部元素】

Exam03_10.java​

public class Exam03_10 {
public static void main(String[] args) {
//定义二维数组表示学生身高
double[][] height = {
{ 1.56, 1.55, 1.58, 1.61, 1.63 }, // 第1个一维数组
{ 1.64, 1.67, 1.68, 1.71, 1.74 }, // 第2个一维数组
{ 1.77, 1.79, 1.81, 1.83, 1.85 } // 第3个一维数组
};
for (int i = 0; i < height.length; i++) {// 外层循环控制打印多少个一维数组
for (int j = 0; j < height[i].length; j++) {// 内层循环打印一维数组的每一个元素
System.out.print(height[i][j] + "\t");
}
System.out.println();// 换行
}
}
}

3.2小节曾经讲过:二维数组的length属性表示这个二维数组总共有多少行,因此外层循环中以“i<height.length”作为循环条件来控制打印行数,而height[i]表示二维数组中下标为i的那个一维数组,因此内层循环中以“j<height[i].length”作为循环条件来控制打印一维数组元素的个数。内层循环中的“height[i][j]”就表示了当前被打印的数组元素。在打印数组元素时,使用了不换行的print()方法,这样使得每个一维数组中的元素都会被打印到控制台的同一行上。在print()方法中,每次打印数组元素之后还会打印一个“\t”,这个“\t”表示制表符,如果读者不理解制表符的概念,可以暂时先把它当作一个空格看待,它可以使被打印到控制台上的元素之间出现空隙。每打印一行元素之后都会用println()方法完成换行操作。​

【例03_10】的运行结果为:​

1.56 1.55 1.58 1.61 1.63 ​
1.64 1.67 1.68 1.71 1.74 ​
1.77 1.79 1.81 1.83 1.85 ​

通过这个打印结果可以很明显的看出:内层循环只有全部执行完毕后外层循环才会进入下一轮,并且外层循环每执行一次时,内层循环都会重新从头执行。​

嵌套循环不仅仅可以用来打印二维数组,它在实际开发过程中还有很多其他应用,下面就来讲解一个使用循环嵌套打印九九乘法表的例子。九九乘法表的格式如下:​

1×1=1

2×1=2 2×2=4

3×1=3 3×2=6 3×3=9

………….

9×1=9 9×2=18 9×3=27 9×4=36 …………9×9=81

九九乘法表中公有9行,每一行中都包含多个式子。每个式子中,“×”左边的数字都与行数相同,比如在第3行的所有式子中,“×”左边的数字都是3。另外,每个式子“×”右边的数字都与该式子在本行中的排位相等,比如在任意一行中,排第2位的式子“×”右边的数字都是2。进一步观察不难发现:某一行中式子的个数又与它所在的行数相同,也就是说:第1行中有1个式子,第2行中有2个式子...以此类推,第9行中有9个式子。如果用嵌套循环打印九九乘法表,可以用内层循环完成打印式子的操作,用外层循环控制总共要打印多少行式子。而内层循环执行的次数又取决于第几次执行外层循环。也就是说:第1次执行外层循环时,内层循环执行1次,而第2次执行外层循环时,内层循环执行2次...以此类推,第9次执行外层循环时,内层循环执行9次。以下是使用嵌套循环打印九九乘法表的完整代码:​

【例03_11使用嵌套循环打印二维数组全部元素】

Exam03_11.java​

public class Exam03_11 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {// 外层循环控制打印多少行
for (int j = 1; j <= i; j++) {// j<=i表明第几次执行外层循环就打印几个式子
System.out.print(i + "×" + j + "=" + i * j + "\t");// 打印式子
}
System.out.println();// 换行
}
}
}

除此文字版教程外,小伙伴们还可以点击这里观看我在本站的视频课程学习Java。

标签:外层,第三章,打印,嵌套循环,循环,数组,式子
From: https://blog.51cto.com/mugexuetang/5978701

相关文章

  • 为数组新增一个flat方法(浏览器不支持的话),可以将一个数组打平,并支持传入最深的层级数,得
    例如:[1,[2,3,[4,5,[6,7],8]],9].flat(2) 得到[1,2,3,4,5,[6,7],8,9]直接上代码:Array.prototype.flat=function(dep=1){returnthis.reduce((a......
  • 第三章《数组与循环》第7节:break与continue关键字
    ​在实际开发过程中,并不是任何情况下都要让循环从始至终全部执行完毕,有时需要对循的执行进行一定程度的控制。Java语言中提供了break和continue两个关键字来控制循环的执行......
  • 二维数组、数组指针以及指针数组
     1.二维数组定义  格式:数据类型数组名[行][列];  示例:intbuff[3][5];  第一个[3]表示二维数组buff中有3个一位数组  第二个[5]表示每个一维数组中有5个......
  • 【维生素C语言】第四章 - 数组
     前言本章将对C语言的数组进行讲解,从一维数组开始讲起。已经学了三个章节了,所以本章还附加了三子棋和扫雷两个简单的小游戏,读者可以试着写一写,增加编程兴趣,提高模块化编程......
  • 【维生素C语言】第三章 - 函数
    前言本章将对于C语言函数的定义和用法进行讲解,并且对比较难的递归部分进行详细画图解析,并对栈和栈溢出进行一个简单的叙述。同样,考虑到目前处于基础阶段,本章配备练习便于读......
  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 targe
    1#include<stdio.h>2#include<stdlib.h>3#include<iostream>4usingnamespacestd;56int*twoSum(int*nums,intnumsSize,inttarget){//暴力遍......
  • LeetCode 删除排序数组中的重复项
    题目给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能......
  • 数组与链表
    数组数组定义数组是一种基础的线性数据结构,它是用连续的一段内存空间,来存储相同数据类型数据的集合。线性数据结构是有限的,它是某类元素的集合并且记录着元素之间的一组......
  • day04 IDEA&数组
    第一部分:IDEA开发工具参见:IEDA的安装请参考文件夹PPT中的04_IDEA.ppt1.数组1.1数组介绍​ 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2......
  • PHP 数组
    数组能够在单独的变量名中存储一个或多个值。实例数组在单个变量中存储多个值:<?php$cars=array("porsche","BMW","Volvo");echo"Ilike".$cars[0].",".$c......