【Java笔记】第4章:深入学习循环结构

  • 前言
  • 1. 循环的理解
  • 2. while循环
  • 3. do...while循环
  • 4. for循环
  • 5. 循环的控制语句
  • 6. 循环的嵌套
  • 结语


在这里插入图片描述


上期回顾: 【Java笔记】第3章:深入学习分支结构
个人主页:C_GUIQU
归属专栏:【Java学习】

在这里插入图片描述

前言

各位小伙伴大家好!上期小编给大家讲解了Java中的分支结构,接下来讲讲循环!
在这里插入图片描述

1. 循环的理解

【理解】依据条件,重复且有规律。
【组成】循环变量的初始化、循环条件、循环变量的改变、循环体。
【分类】while循环、do…while循环、for循环。

2. while循环

【语法】

// 循环变量的初始化
while(循环条件){
   // 循环体(重复执行的功能代码)
   // 循环变量的改变
}

【示例】计算从 1 加到 10 的和

public class WhileExample {
    public static void main(String[] args) {
        int sum = 0; // 定义一个变量用于存储和
        int i = 1; // 定义一个循环变量

        while (i <= 10) { // 当 i 小于等于 10 时执行循环体内的语句
            sum += i; // 将 i 的值加到 sum 上
            i++; // 将 i 的值增加 1
        }

        // 循环结束后打印结果
        System.out.println("1 到 10 的和为: " + sum);
    }
}

3. do…while循环

【语法】

// 循环变量的初始化
do{
   // 循环体
   // 循环变量的改变
}while(循环条件); // 分号不能省略

【特点】先执行,再判断。
【示例】计算从 1 加到 10 的和

public class DoWhileExample {
    public static void main(String[] args) {
        int sum = 0; // 定义一个变量用于存储和
        int i = 1; // 定义一个循环变量

        do {
            sum += i; // 将 i 的值加到 sum 上
            i++; // 将 i 的值增加 1
        } while (i <= 10); // 当 i 小于等于 10 时继续执行循环体内的语句

        // 循环结束后打印结果
        System.out.println("1 到 10 的和为: " + sum);
    }
}

4. for循环

【语法】

for(循环变量的初始化;循环条件;循环变量的改变){
   // 循环体
}

【执行原理】

在这里插入图片描述
【示例1】打印从 1 到 10 的数字

public class ForLoopExample {
    public static void main(String[] args) {
        // 使用 for 循环打印从 1 到 10 的数字
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

【示例2】遍历数组

public class ForLoopArrayExample {
    public static void main(String[] args) {
        // 定义一个整型数组
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // 使用 for 循环遍历数组并打印每个元素
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
    }
}

【循环的总结】
while循环和for循环特点:先判断,再执行。
do…while循环特点:先执行,再判断。
当循环次数不确定时,建议使用while循环。
当循环的次数明确时,建议使用for循环。

5. 循环的控制语句

在 Java 中,循环的控制语句允许你改变循环的正常流程。主要有三种控制语句:breakcontinuereturn

  1. break 语句:用于立即退出最内层的循环,无论循环条件是否为真。break 语句也可以用于 switch 语句,用于退出 switch 语句。
for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break; // 当 i 等于 5 时,退出循环
    }
    System.out.println(i); // 只打印 1 到 4
}
  1. continue 语句:用于跳过当前循环的剩余部分,并开始下一次循环迭代。
for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        continue; // 当 i 等于 5 时,跳过这次迭代
    }
    System.out.println(i); // 打印 1 到 10,但不包括 5
}
  1. return 语句:用于从方法中返回一个值(如果方法有返回类型的话),并立即退出该方法。如果在循环内使用 return,它将导致整个方法立即结束,从而退出循环。
public static void printNumbers(int max) {
    for (int i = 1; i <= max; i++) {
        if (i == 5) {
            return; // 当 i 等于 5 时,退出方法
        }
        System.out.println(i); // 只打印 1 到 4
    }
}

在编写循环时,这些控制语句可以用来根据特定的条件来控制循环的执行流程。需要注意的是,过度使用这些控制语句可能会导致代码难以理解和维护,因此应该谨慎使用。

6. 循环的嵌套

循环的嵌套是指在一个循环内部再嵌套另一个循环。在 Java 中,你可以嵌套 forwhiledo...while 循环。
在实际开发中,for循环用的最多,接下来举三个for循环嵌套的例子。

【打印一个乘法表】

public class NestedLoopsExample {
    public static void main(String[] args) {
        int rows = 10;
        int columns = 10;
        // 外层循环控制行
        for (int i = 1; i <= rows; i++) {
            // 内层循环控制列
            for (int j = 1; j <= columns; j++) {
                // 打印乘法表的一个元素
                System.out.print(i * j + "\t");
            }
            // 每打印完一行后换行
            System.out.println();
        }
    }
}

在这个例子中,外层 for 循环用于控制行数,内层 for 循环用于控制每行中的列数。内层循环会在外层循环的每次迭代中完整执行。这样,内层循环的每次迭代都会打印出当前行和列的乘积。

【打印星号图案】
这个例子使用嵌套的 for 循环来打印一个金字塔形状的星号图案。

public class StarPatternExample {
    public static void main(String[] args) {
        int rows = 5;
        // 外层循环控制行数
        for (int i = 1; i <= rows; i++) {
            // 打印空格,形成左对齐的金字塔
            for (int j = 1; j <= rows - i; j++) {
                System.out.print(" ");
            }
            // 内层循环控制每行星号的个数
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            // 每打印完一行后换行
            System.out.println();
        }
    }
}

运行这个程序会输出以下图案:

    *
   **
  ***
 ****
*****

【遍历二维数组】
这个例子使用嵌套的 for 循环来遍历一个二维数组并打印其元素。

public class TwoDimensionalArrayExample {
    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        // 外层循环遍历行
        for (int i = 0; i < matrix.length; i++) {
            // 内层循环遍历列
            for (int j = 0; j < matrix[i].length; j++) {
                // 打印数组元素
                System.out.print(matrix[i][j] + " ");
            }
            // 每打印完一行后换行
            System.out.println();
        }
    }
}

运行这个程序会输出二维数组的所有元素,按照它们在数组中的排列:

1 2 3
4 5 6
7 8 9

在这两个例子中,嵌套循环用于处理更复杂的逻辑,比如在第一个例子中创建一个基于行和列的图形,在第二个例子中遍历一个二维数据结构。嵌套循环是处理这类问题的有力工具。

嵌套循环可以用于多种场景,比如处理二维数组、图形和图像的渲染、复杂的数据结构遍历等。在设计嵌套循环时,重要的是要确保内外层循环的逻辑是正确的,并且要考虑到循环的终止条件,以避免无限循环。

结语

以上就是小编对Java中循环的讲解。
如果觉得小编讲的还可以,还请一键三连。互三必回!
持续更新中~!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/560247.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac下删除旧版本.net sdk

参照微软官网给的方法,Releases dotnet/cli-lab (github.com) 好像不能直接的解决问题,我做一下补充,希望对需要删除旧版本sdk的小伙伴们有所帮助 1:下载工具包 Releases dotnet/cli-lab (github.com) 2:打开终端,cd切换到该文件的制定目录 3:然后按照提示一步步执行…

2024上海国际半导体制造设备材料与核心部件展览会

2024上海国际半导体制造设备材料与核心部件展览会 2024 Shanghai International Semiconductor Manufacturing Equipment Materials and Core Components Exhibition 时间&#xff1a;2024年11月18日-20日 地点&#xff1a;上海新国际博览中心 详询主办方陆先生 I38&#…

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效

在ES 使用多条件 查询&#xff0c;并且是多个条件只需要满足部分条件的时候&#xff0c;我们通常会使用到ES的should查询 GET /trademark_query_index/_search {"query":{"bool" : {"must":[{"match" : {"origin": {"…

PACS系统源码 新一代的医学图像管理系统 pacs 云影像,PACS云胶片,PACS影像工作站系统源码

PACS系统源码 新一代的医学图像管理系统 pacs 云影像,PACS云胶片,PACS影像工作站系统源码 三甲医院医学影像PACS系统源码&#xff0c;集成三维影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分…

SynchronousQueue

SynchronousQueue 解释&#xff1a; 同步队列 介绍 实现了BlockingQueue 和 Queue 其中每个插入操作必须等待另一个线程相应的删除操作 同步队列没有任何容量&#xff0c;甚至没有一个容量 如果你想放入一个元素&#xff0c;就必须有另外一个线程尝试从中移除元素 使用 …

软件行业中的蓝海领域有哪些?

什么是蓝海&#xff1f; 蓝海&#xff0c;指的是未知的市场空间。这个概念相对于“红海”而言&#xff0c;红海则是指已知的市场空间。 企业要启动和保持获利性增长&#xff0c;就必须超越产业竞争&#xff0c;开创全新市场&#xff0c;这其中包括两块&#xff1a;一块是突破…

Shader 渐变屏幕

渐变 前置工作&#xff0c;创建缓冲&#xff0c;对顶点着色器传递顶点数据 function main() {var canvas document.getElementById(webgl);var gl getWebGLContext(canvas);if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) returnvar n initVertexBuffers(gl); }fu…

多个路由器连接的PC端进行ping通信需要做的事

实验环境&#xff1a; 三台PC三台路由器&#xff0c;并且配置好IP 拓扑图&#xff1a; 需求描述&#xff1a; 在PC0进行与PC2的ping通信&#xff1a; 需求步骤&#xff1a; 1.1首先配置ip&#xff08;略过&#xff09; 1.2我们首先查看在只配置了IP的情况下&#xff0c;P…

小程序如何优化搜索排名,获取曝光

在移动互联网时代&#xff0c;小程序以其便捷、轻量级的特点&#xff0c;逐渐成为用户获取服务的重要渠道。然而&#xff0c;小程序数量众多&#xff0c;如何让自己的小程序在搜索中脱颖而出&#xff0c;获取更多的曝光和流量&#xff0c;成为众多开发者关注的焦点。 一、理解…

javascript遍历多层级数据

javascript遍历多层级数据 代码 // data:需要处理的数据 level:用于标记数据所在层级(从1开始) const dataLoop(data, level 1)>{return data.map(item>{let r {...item, level}console.log(item, item)// 判断如果有下级&#xff0c;就传入children继续向下循环if(r…

Vuex 的原理

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store&#xff08;仓库&#xff09;。“store” 基本上就是一个容器&#xff0c;它包含着你的应用中大部分的状态 ( state )。 Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的…

在Vue项目使用kindEditor富文本编译器以及上传图片

第一步 npm install kindeditor第二步&#xff0c;建立kindeditor.vue组件 <template><div class"kindeditor"><textarea :id"id" name"content" v-model"outContent"></textarea></div> </templa…

【C语言__结构体__复习篇5】

目录 前言 一、结构体基础知识 1.1 结构体的语法形式 1.2 创建结构体变量 1.3 结构体变量的初始化 1.4 点(.)操作符和箭头(->)操作符 二、匿名结构体 三、结构体自引用 四、结构体内存对齐 4.1 内存对齐的规则 4.2 出现结构体内存对齐的原因 4.3 修改默认对齐数 五、结…

JavaScript高级

一、JavaScript 面向对象 面向对象编程介绍ES6 中的类和对象类的继承面向对象案例 1. 面向对象编程介绍 1.1 两大编程思想 面向过程面向对象 1.2 面向过程编程 POP(Process-oriented programming) 面向过程 就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步…

shell脚本编程的例子(50例子)-1

前言 为了提高教学质量&#xff0c;并且能够让童鞋们更好的理解和运用shell脚本以及相关编程&#xff0c;特编写了50个shell例子&#xff0c;目前还在整理过程ing&#xff0c;计划分三期完成。请有需要的同学收藏。后续会申请VIP阅读。…… ^.^ …… ^…^ 实验环境&#xff1…

javaWeb项目-智慧餐厅点餐管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、JavaScript Java…

C语言进阶课程学习记录-内存操作经典问题分析

C语言进阶课程学习记录-内存操作经典问题分析 实验-示例1优化 实验-示例2优化 实验-示例3实验-示例4小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-示例1 #include <stdio.h> #include…

ChatGPT研究论文提示词集合1-【主题选择与问题研究、文献综述】

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 目录 1.主题选择与问题定义 2.文献综述 3.书籍介绍 AIPaperPass智能论文写作平台 近期小编按照学术论文的流程&#xff0c;精心准备一套学术研究各个流程的提示词集合。总共14个步骤…

HTTP请求中的cookie与session(servlet实现登录页面的表单验证)

一、cookie 与 session 1&#xff09;cookie 与 session 的定义 2&#xff09;相关的servlet中的 方法 二、代码实现 登录页面 1&#xff09;先用 vscode 编写登录页面 注意文件的路径 在webapp路径下 <!DOCTYPE html> <html lang"en"><head>&…

ai写作强大,ai写作哪个软件最好用?

在当今数字化时代&#xff0c;ai技术的发展正以惊人的速度改变着我们的生活和工作方式。其中&#xff0c;ai写作作为一项令人瞩目的创新&#xff0c;展示了强大的文本生成能力。然而&#xff0c;随着各种ai写作软件的涌现&#xff0c;人们不禁困惑&#xff1a;哪个软件才是最好…