十六、循环结构循环结构的作用减少代码的重复编写、灵活地控制程序的执行一for循环控制一段代码反复执行很多次格式​for(初始化语句;循环条件;迭代语句){​循环体语句(重复执行的代码);​}示例// 输出3次HelloWorldfor(inti0;i3;i){System.out.println(Hello World);}二while循环格式​初始化语句;​while(循环条件){​循环体语句(被重复执行的代码);​迭代语句;​}示例inti0;while(i3){System.out.println(Hello World);i;}三do-while 循环格式​初始化语句;​do{​循环体语句;​迭代语句;​}while(循环条件);示例inti0;do{System.out.println(Hello World! );i;}while(i3);四三种循环的使用小结for循环和while循环功能上是完全一样的for能解决的while也能解决反之亦然。使用规范知道循环几次用for不知道循环几次建议用while。for循环中控制循环的变量只在循环中使用。while循环中控制循环的变量在循环后还可以继续使用。五死循环可以一直执行下去的一种循环如果没有干预不会停下来。写法forfor(;;){System.out.println(Hello World1);}while(经典写法)while(true){System.out.println(Hello World2);}dodo{System.out.println(Hello World3);}while(true);六循环嵌套循环中又包含循环for(inti0;i3;i){for(intj0;j5;j){System.out.println(我爱你);}}嵌套循环的特点外部循环每循环一次内部循环会全部执行完一轮。七跳转关键字break跳出并结束当前所在循环的执行。只能用于结束所在循环或者结束所在switch分支的执行。continue用于跳出当前循环的当次执行直接进入循环的下一次执行。只能在循环中使用。十七、数组一一维数组数组是什么数组是一个数据容器可用来存储一批同类型的数据。数组的定义格式静态初始化数组定义时已经确定了数据​数据类型[] 数组名 {元素1元素2元素3….}int[]arr{12,24,36};完整格式​数据类型[] 数组名 new 数据类型[] {元素1元素2元素3….}int[]arrnewint[]{12,24,36};注意数据类型[] 数组名也可以写成数据类型 数组名[]数组的访问数组名[索引]System.out.println(arr[0]);//12System.out.println(arr[1]);//24arr[1]100;获取数组的长度(元素个数)System.out.println(arr.length);//3动态初始化数组定义数组时先不存入具体的元素值只确定数据存储的数据类型和数组的长度数据类型[] 数组名 new 数据类型[长度]int[]arrnewint[3];元素默认值规则数据类型明细默认值基本类型byte、short、char、int、long0float、double0.0booleanfalse引用类型类、接口、数组、Stringnull数组的遍历示例int[]arr{20,30,40,50};for(inti0;iarr.length;i){System.out.println(arr[i]);}数组的综合应用实现简易版斗地主游戏的做牌和洗牌功能。我们需要做牌创建54张扑克牌包含大小王并存入数组洗牌打乱数组中牌的顺序代码实现packagecom.zzh.loop;importjava.util.Random;publicclass数组的综合应用{publicstaticvoidmain(String[]args){// 第一步做牌创建54张扑克牌// 定义花色数组方块♦、梅花♣、红桃♥、黑桃♠String[]colors{♦,♣,♥,♠};// 定义点数数组A, 2, 3, ..., KString[]numbers{A,2,3,4,5,6,7,8,9,10,J,Q,K};// 创建一个长度为54的String数组用于存储所有扑克牌String[]cardsnewString[54];// 使用索引变量记录当前存放到第几张牌intindex0;// 使用嵌套循环生成52张普通牌4种花色 × 13种点数for(inti0;inumbers.length;i){// 外层循环遍历点数for(intj0;jcolors.length;j){// 内层循环遍历花色// 将点数和花色拼接成一张牌例如♦3、♣Acards[index]numbers[i]colors[j];index;// 每存放一张牌索引加1}}// 添加两张王牌小王和大王cards[index]小;index;cards[index]大;// 打印做牌结果查看54张牌是否创建成功System.out.println( 做牌完成共54张牌 );for(inti0;icards.length;i){System.out.print(cards[i] );// 每行打印10张牌方便查看if((i1)%100){System.out.println();}}System.out.println();// 换行// 第二步洗牌打乱牌的顺序// 创建Random对象用于生成随机数RandomrandomnewRandom();// 使用循环遍历每一张牌for(inti0;icards.length;i){// 随机生成一个索引位置范围0到53intrandomIndexrandom.nextInt(cards.length);// 交换当前牌和随机位置的牌Stringtempcards[i];// 临时保存当前牌cards[i]cards[randomIndex];// 将随机位置的牌放到当前位置cards[randomIndex]temp;// 将当前牌放到随机位置}// 打印洗牌结果查看牌的顺序是否被打乱System.out.println(\n 洗牌完成 );for(inti0;icards.length;i){System.out.print(cards[i] );// 每行打印10张牌方便查看if((i1)%100){System.out.println();}}System.out.println();// 换行}}二二维数组二维数组是什么数组中每个元素都是一个一维数组这个数组就是二维数组。静态初始化​数据类型[][] [][] 数组名 new 数据类型[][]{元素1元素2元素3……};示例int[][]arrnewint[][]{{12,24,36},{666,888}{10,20,30},{999}};动态初始化​数据类型[][] 数组名 new 数据类型[长度1][长度2]示例int[][]arrnewint[3][5];二维数组的访问数组名称[行索引]数组名称[行索引][列索引]二维数组的遍历示例for(inti0;iarr.length;i){for(intj0;jarr[i].length;j){intdataarr[i][j];System.out.print(data\t);}System.out.println();}