当前位置: 首页 > news >正文

day03_Java学习笔记

十六、循环结构

  • 循环结构的作用:
    • 减少代码的重复编写、灵活地控制程序的执行

(一)for循环

  • 控制一段代码反复执行很多次

  • 格式:

    for(初始化语句;循环条件;迭代语句){

    循环体语句(重复执行的代码);

    }

  • 示例:

    // 输出3次HelloWorldfor(inti=0;i<3;i++){System.out.println("Hello World");}

(二)while循环

  • 格式:

    初始化语句;

    while(循环条件){

    循环体语句(被重复执行的代码);

    迭代语句;

    }

  • 示例:

    inti=0;while(i<3){System.out.println("Hello World");i++;}

(三)do-while 循环

  • 格式:

    初始化语句;
    do{
    循环体语句;
    迭代语句;
    }while(循环条件);

  • 示例:

    inti=0;do{System.out.println("Hello World! ");i++;}while(i<3);

(四)三种循环的使用小结

  • for循环和while循环功能上是完全一样的,for能解决的while也能解决,反之亦然。
  • 使用规范:知道循环几次,用for;不知道循环几次,建议用while。
  • for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用。

(五)死循环

  • 可以一直执行下去的一种循环,如果没有干预不会停下来。

  • 写法

    • for:

      for(;;){System.out.println("Hello World1");}
    • while(经典写法)

      while(true){System.out.println("Hello World2");}
    • do

      do{System.out.println("Hello World3");}while(true);

(六)循环嵌套

  • 循环中又包含循环

    for(inti=0;i<3;i++){for(intj=0;j<5;j++){System.out.println("我爱你");}}
  • 嵌套循环的特点

    • 外部循环每循环一次,内部循环会全部执行完一轮。

(七)跳转关键字

  • break
    • 跳出并结束当前所在循环的执行。
    • 只能用于结束所在循环,或者结束所在switch分支的执行。
  • continue
    • 用于跳出当前循环的当次执行,直接进入循环的下一次执行。
    • 只能在循环中使用。

十七、数组

(一)一维数组

  • 数组是什么?

    • 数组是一个数据容器,可用来存储一批同类型的数据。
  • 数组的定义格式:

    • 静态初始化数组,定义时已经确定了数据

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

      int[]arr={12,24,36};
    • 完整格式

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

      int[]arr=newint[]{12,24,36};
    • 注意

      数据类型[] 数组名也可以写成数据类型 数组名[]

  • 数组的访问

    • 数组名[索引]

      System.out.println(arr[0]);//12
      System.out.println(arr[1]);//24
      arr[1]=100;
    • 获取数组的长度(元素个数)

      System.out.println(arr.length);//3
  • 动态初始化数组

    • 定义数组时先不存入具体的元素值,只确定数据存储的数据类型和数组的长度

      ==数据类型[] 数组名 = new 数据类型[长度];==
      int[]arr=newint[3];
    • 元素默认值规则:

      数据类型明细默认值
      基本类型byte、short、char、int、long0
      float、double0.0
      booleanfalse
      引用类型类、接口、数组、Stringnull
  • 数组的遍历

    • 示例:

      int[]arr={20,30,40,50};for(inti=0;i<arr.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[]cards=newString[54];// 使用索引变量记录当前存放到第几张牌intindex=0;// 使用嵌套循环生成52张普通牌(4种花色 × 13种点数)for(inti=0;i<numbers.length;i++){// 外层循环遍历点数for(intj=0;j<colors.length;j++){// 内层循环遍历花色// 将点数和花色拼接成一张牌,例如:"♦3"、"♣A"cards[index]=numbers[i]+colors[j];index++;// 每存放一张牌,索引加1}}// 添加两张王牌:小王和大王cards[index]="小";index++;cards[index]="大";// 打印做牌结果,查看54张牌是否创建成功System.out.println("========== 做牌完成,共54张牌 ==========");for(inti=0;i<cards.length;i++){System.out.print(cards[i]+" ");// 每行打印10张牌,方便查看if((i+1)%10==0){System.out.println();}}System.out.println();// 换行// ========== 第二步:洗牌(打乱牌的顺序)==========// 创建Random对象,用于生成随机数Randomrandom=newRandom();// 使用循环遍历每一张牌for(inti=0;i<cards.length;i++){// 随机生成一个索引位置(范围:0到53)intrandomIndex=random.nextInt(cards.length);// 交换当前牌和随机位置的牌Stringtemp=cards[i];// 临时保存当前牌cards[i]=cards[randomIndex];// 将随机位置的牌放到当前位置cards[randomIndex]=temp;// 将当前牌放到随机位置}// 打印洗牌结果,查看牌的顺序是否被打乱System.out.println("\n========== 洗牌完成 ==========");for(inti=0;i<cards.length;i++){System.out.print(cards[i]+" ");// 每行打印10张牌,方便查看if((i+1)%10==0){System.out.println();}}System.out.println();// 换行}}

(二)二维数组

  • 二维数组是什么?

    • 数组中每个元素都是一个一维数组,这个数组就是二维数组。
  • 静态初始化

    • 数据类型[][] [][] 数组名 = new 数据类型[][]{元素1,元素2,元素3,……};
    • 示例:
    int[][]arr=newint[][]{{12,24,36},{666,888}{10,20,30},{999}};
  • 动态初始化

    • 数据类型[][] 数组名 = new 数据类型[长度1][长度2];
    • 示例:
    int[][]arr=newint[3][5];
  • 二维数组的访问

    • 数组名称[行索引]
    • 数组名称[行索引][列索引]
  • 二维数组的遍历

    • 示例:
    for(inti=0;i<arr.length;i++){for(intj=0;j<arr[i].length;j++){intdata=arr[i][j];System.out.print(data+"\t");}System.out.println();}

http://www.jsqmd.com/news/1151407/

相关文章:

  • 【6.21】知识点清单逐点解答
  • K-5065 UV三防漆-电子线路板防护-技术参数与选型
  • 奢侈品销售管理系统设计与实现开题报告
  • 终极实战指南:免费解锁Grammarly高级功能的Cookie自动获取工具
  • Ollama Windows 本地部署全指南:从零开始搭建大模型运行环境
  • 人工智能技术全场景应用解析:原理、落地案例、实战代码与未来趋势(2026最新)
  • AI 编程助手如何从个人工具变成项目工作流:Codex 使用实践与版本选择
  • AI多Agent协作系统实战(九):Agent恢复备份导致菜单丢失的血泪教训
  • BLS 宽度学习系统 vs 深度学习:5 个工业场景下的训练速度与精度实测
  • WaveTools鸣潮工具箱:三大核心功能重塑你的游戏体验
  • 单板硬件开发实战:从 15K Pin 原理图到信号完整性设计的 3 个核心工作流
  • 终极Emby Premiere解锁指南:免费享受所有高级功能的完整教程
  • T156:移动类型主表
  • 18650/21700/4680 圆柱电池规格对比:特斯拉技术演进与 5 大应用场景解析
  • 聚和配送老炮的回忆录-第二天
  • 适合创业者的亚洲EMBA权威综合实力榜单评测
  • ERM振动马达和LRA区别:工程师如何选择适合的振动反馈方案?
  • 离线语音转文字横评:免费、订阅、买断,踩坑三个月告诉你
  • 地月引力潮地震理论(假说)
  • Markdown 编辑器视频上传实战:ByteMD 插件开发与 XSS 防护
  • ISC DHCP完全指南:网络自动配置的终极解决方案
  • 大数据毕设选题推荐:基于大数据可视化的淘宝电子产品竞品分析系统的设计与实现 基于时序数据的淘宝电子产品销售趋势系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 吉利银河A7 EM刷新吉尼斯世界纪录,实测行驶超2608公里
  • RGMII 与 GMII/MII 接口对比:12 引脚 vs 22 引脚的硬件成本与性能实测
  • D3.js 数据可视化实战:数据绑定与力导向图渲染管线
  • 06 项目目录结构与编码规范:三层架构与 DAO 模式实践
  • 2026年横评:宁波3大语文小升初机构综合评测
  • FPC连接器为什么能成为机器人应用的必备连接方案?
  • BilibiliDown:3分钟上手B站视频下载的终极免费工具
  • 3分钟快速体验:如何免费在浏览器中运行Windows 12网页版