Java基础05 循环结构

2024-09-04 20:38
文章标签 java 基础 05 结构 循环

本文主要是介绍Java基础05 循环结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

超详细的Java知识点路线图


前言

再复杂的程序都是由三种基本结构组成的:顺序结构、分支结构和循环结构,本文我们就学习这个循环结构,本文内容包含:for\while\do-while循环、循环控制break和continue以及嵌套循环。

循环

LOL中的盖伦的E技能是拿剑转圈,假设一共需要转十圈,程序是如何控制他执行重复的转圈操作呢?
答案就是:通过循环反复去执行一段代码

Java中的循环有

  • for
  • while
  • do-while

循环的三个要素

  1. 停止循环的条件
  2. 起始量,循环变量的初始化
  3. 循环变量的更新

for循环

一般用于固定次数的循环
语法结构:

for(循环变量的初始化;循环的条件;循环变量的更新){循环的执行语句;
}

执行流程:

  1. 初始化
  2. 判断循环条件,如果成立
  3. 执行循环语句
  4. 变量的更新
  5. 判断循环条件

    在这里插入图片描述

练习:
1、转圈的案例

for(int i = 1;i <= 10;i++){System.out.println("盖伦转了" + i + "圈");
}

2、输出100到999之间的所有奇数
3、求5的阶乘。5!= 1 * 2 * 3 * 4 * 5
4、求1~100的总和

while循环

while循环执行的流程和for一样
语法:

循环变量的初始化
while(循环条件){循环的执行语句循环变量的更新
}

练习:
1、用while循环完成

int i = 1;
while(i <= 10){System.out.println("盖伦转了" + i + "圈");i++;
}

2、用while循环完成,输入两个数字m和n,求m和n之间数字的总和(假设m < n)

do-while循环

语法:

变量的初始化;
do{循环执行的语句;变量的更新;
}while(循环条件);

do-while和for、while的区别:
for、while是先进行条件判断,再执行循环语句,如果条件不成立,一次都不执行。
do-while是先执行循环语句,再进行条件判断,如果条件不成立,至少会执行一次。
执行流程:
在这里插入图片描述

练习:一个人跑步,跑完1圈后,询问他是否继续跑,当回答“y”时,继续跑下一圈,否则结束跑步。
1、使用do-while完成
2、循环变量使用String类型
3、循环代码,先输出跑完一圈,再给循环变量输入字符串
4、循环的条件是变量值为"y”

Scanner input = new Scanner(System.in);
String answer = "";
do{System.out.println("跑完了一圈,是否要继续跑?");answer = input.next();
}while(answer.equals("y"));
System.out.println("跑完了,休息下");

break关键字

问题:假设一个人准备在公司上一年班,假设是365天,如果这个人在第100天买彩票发财了,不想再上班了,怎么办?
——使用break关键字
break作用:在循环中间停止整个循环的执行。

//使用循环模拟上365天班
for(int i = 1;i <= 365;i++){System.out.println("上了"+i+"天班");//在第100天中奖,辞职不上班了if(i == 100){//停止整个循环的执行break;}
}

continue关键字

问题:假设上面那个人不是真的中彩票,只是做梦,但是睡觉着凉了,在第100天想请一天假再继续上班,怎么办?
——使用continue关键字
continue作用:在循环中间跳过某一次循环的执行,继续下一次循环。

for(int i = 1;i <= 356;i++){//在第100天,跳过当天的上班if(i == 100){System.out.println("今天发烧了,要请假!");//跳过本次循环,继续continue;}System.out.println("上第"+i+"天班");
}

练习:
1、求1到100的和,和超过2000,就结束
2、输出1到100之间所有尾数不是3的数

嵌套循环

循环内部可以执行任何语句,包括另一个循环,这样就形成了嵌套循环。
如:

for(...){for(...){...}
}
while(..){while(..){...}
}

等,for、while、do-while也可以相互嵌套。

嵌套循环的执行流程:
外部循环执行一次,内部循环执行一轮
在这里插入图片描述

练习1:模拟分秒时间。
分析:
秒钟的循环被嵌套在分钟的循环内部
秒钟执行一轮,分钟执行一次

for(int i = 0;i < 60;i++){for(int j = 0;j < 60;j++){System.out.printf("当前时间是:%d分%d秒\n",i,j);}
}

练习2:输出55正方形,每次只输出一个
分析:
外层循环控制打印的行数
内层循环控制打印的*数

//外层控制行数
for(int i = 1;i <= 5;i++){//内层控制打印5个*for(int j = 1;j <= 5;j++){System.out.print("* ");}//输出换行System.out.println();
}

练习3:输出直角三角形

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

练习4:倒直角三角形

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

练习5:输出等腰三角形

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

嵌套循环的break和continue

for(...){for(...){if(...){break/continue;}}
}

内层循环中的break和continue只对内层循环起作用,对外层没有影响。
如果希望break和continue影响外层循环,可以使用label语句(label文字可以自定义)

label:
for(...){for(...){if(...){break label;}}
}

结束

好了,留点作业给大家:

  1. 输出20个斐波拉契数字:
    1 、1 、2 、3 、5 、8 、13 、21 、34 …
    从第三个数开始,每一个数等于前两个数之和。

  2. 输出菱形

        ** * ** * * * ** * * * * * *
* * * * * * * * ** * * * * * ** * * * ** * * *
  1. 求1~·100间所有的素数(只能被1和自身整除)

大家如果需要学习其他Java知识点,戳这里 超详细的Java知识点汇总

这篇关于Java基础05 循环结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136970

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问