【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中循环的讲解。
如果觉得小编讲的还可以,还请一键三连。互三必回!
持续更新中~!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea错误地commit后如何处理

如果你想使用命令行重新初始化 Git 仓库&#xff0c;可以按照以下步骤进行&#xff1a; 删除该项目的.git文件夹 打开命令行终端。 切换到项目所在的目录&#xff0c;使用 cd 命令。 在项目目录下运行以下命令来重新初始化 Git 仓库 git init这将在当前目录下创建一个新的 Git …

Spring 事务实现方式:

Spring 事务实现方式&#xff1a; Spring并不直接支持事务&#xff0c;只有当数据库支持事务的时候&#xff0c;Spring才支持事务&#xff0c;Spring只不过简化了开发人员实现事务的开发步骤 Spring事务的实现方式有两种&#xff1a; 一、基于申明式事务&#xff1a; Service…

ubuntu 16.04.7连不上网的解决方案

首先在编辑选项卡里找到虚拟网络编辑器&#xff0c; 点击更改设置 点击添加网络 点击确定 选择桥接模式&#xff0c;自动后点击应用&#xff0c;最后点击确定即可。

Java——多态

1.多态简介 多态&#xff0c;字面意思来看就是多种形态&#xff0c;即当去执行某个行为&#xff0c;会因为对象的不同而产生不同的效果。在java语言当中就是根据对象的性质不同&#xff0c;对同一个方法进行调用时&#xff0c;得到了不同的执行结果。 在理解多态中必须时刻牢记…

文件夹变白色文件,数据恢复全攻略助你轻松找回!

在日常的电脑使用中&#xff0c;你是否曾遇到过文件夹突然变成了白色文件的情况&#xff1f;这种看似无害的变化&#xff0c;实则可能隐藏着数据丢失的风险。当你发现原本正常的文件夹图标变成了无关联程序的白板图标&#xff0c;且无法正常打开时&#xff0c;内心无疑是焦虑不…

车载诊断系统应用方案选型,ESP8266方案让成本降低了35%,销售数据提升47%

车载诊断系统简称OBD&#xff0c;这个系统随时监控发动机的运行状况和尾气后处理系统的工作状态&#xff0c;一旦发现有可能引起排放超标的情况&#xff0c;会马上发出警示。当系统出现故障时&#xff0c;故障灯(MIL)或检查发动机(Check Engine)警告灯亮&#xff0c;同时OBD系统…

Java调用cmd

Java调用cmd并执行命令 在Java中调用命令提示符&#xff08;cmd&#xff09;并执行命令&#xff0c;可以通过使用Runtime类或ProcessBuilder类来实现 代码示例 /*** 在指定目录下执行命令。** param command 要执行的命令* param path 命令执行的路径* return 如果命令成功执…

【JavaWeb】Day50.Mybatis的XML配置文件

XML配置文件规范 使用Mybatis的注解方式&#xff0c;主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能&#xff0c;建议使用XML来配置映射语句&#xff0c;也就是将SQL语句写在XML配置文件中。 在Mybatis中使用XML映射文件方式开发&#xff0c;需要符合一定的规…

C语言之文件操作【万字详解】

目录 一.什么是文件&#xff1f; 二.为什么要使用文件&#xff1f; 三.文件的分类 3.1.程序文件 3.2.数据文件 四.二进制文件和文本文件 五.文件的打开和关闭 &#xff08;重点&#xff09; 5.1流和标准流 5.1.1何为流&#xff1f; 5.1.2.标准流 5.2文件指针 5.3文件的打开和关…

【1425】java 外籍人员管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

一、源码特点 java 外籍人员管理系统是一套完善的java web信息管理系统 采用serlvetdaobean&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff…

机器学习波士顿房价

流程 数据获取导入需要的包引入文件,查看内容划分训练集和测试集调用模型查看准确率 数据获取 链接&#xff1a;https://pan.baidu.com/s/1deECYRPQFx8h28BvoZcbWw?pwdft5a 提取码&#xff1a;ft5a --来自百度网盘超级会员V1的分享导入需要的包 import pandas as pd imp…

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测&#xff0…

Vue3+Spring Boot3实现跨域通信解决办法

Vue3Spring Boot3实现跨域通信解决办法 1 跨域是什么&#xff1f;2 何为同源呢?3 解决办法3.1 全局配置3.1.1 实现CorsFilter过滤器3.1.2 实现SpringMVC配置类3.1.3 创建CorsFilterFactory工厂类返回CorsFilter对象 3.2 局部跨域3.2.1 注解配置3.2.2 手动设置响应头(局部跨域)…

几款AI语音克隆使用分享(未完成)

近期在看AI语音克隆&#xff0c;发现很多的语音克隆对于原始的音频或者朗读者要求过高&#xff0c;不知各位懂的有没有能给推荐个靠谱的。 1、剪映 语音克隆&#xff0c;2个字1积分&#xff0c;600积分6元。贵&#xff0c;多充并没有优惠。 声音相似度高&#xff0c;但是&#…

springboot+vue社区报修便民维修网站设计与实现

便民维修网站&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、管理员管理、用户管理、维修人员管理、在线报修管理、联系客服管理、公司回访管理、基础数据管理、论坛管理、公告管理、轮播图信息&#xff0c;维修人员&#xff1b;首页、个人中心、维修人员评价管…

科研基础与工具(论文搜索)

免责申明&#xff1a; 本文内容只是学习笔记&#xff0c;不代表个人观点&#xff0c;希望各位看官自行甄别 参考文献 科研基础与工具&#xff08;YouTube&#xff09; 搜索论文 Google Scholar 谷歌学术 涵盖面太全了&#xff0c;都收录&#xff0c;就会有很多低质量的论文…

基于SpringBoot民宿入住管理系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 权限划分&#xff1a;用户和管理员 用户&#xff1a; 具有登录、注册、退出登录的功能 首页&#xff1a;可以查看民宿房间总数&#xff0c;保洁人数&#xff0c;当前入住人数&#xff0c;合计总入住人数&#xff0c;以…

【架构】Elasticsearch+Logstash+Kibana架构

目录 什么是ELK ELK架构的应用场景 什么是ELK ELK是由Elasticsearch、Logstash和Kibana三个开源项目组成的技术栈&#xff0c;广泛用于搜索、日志管理和日志分析。这三个组件协同工作&#xff0c;提供了一个强大的方法来收集、存储、搜索和可视化日志数据和其他时间序列数据…

Android Jetpack学习系列——Room

关于Room&#xff1a; Room是Android Jetpack组件之一&#xff0c;旨在为Android应用程序提供一种简单、强大且易于使用的本地数据库访问解决方案。 关键特性&#xff1a; 1.基于SQLite封装&#xff1a;Room是基于SQLite数据库引擎构建的&#xff0c;提供了面向对象的API来与…

代码随想录算法训练营第五十二天|leetcode第84题

一、leetcode第84题 本题要求柱状图中能勾勒出的最大矩形面积&#xff0c;使用单调栈&#xff0c;要求出单调栈栈顶元素左右比其小的第一个元素&#xff0c;因此使用递减栈&#xff0c;在遇到比栈顶元素小的元素时以栈顶元素为基准计算最大矩形面积。为了避免单调递减无法计算…