Java循环结构:一件事重复做才能有效果。

news2024/11/19 19:45:30

在这里插入图片描述

  • 👑专栏内容:Java
  • ⛪个人主页:子夜的星的主页
  • 💕座右铭:前路未远,步履不停

目录

  • 一、while循环
    • 1、基本语法
    • 2、注意事项
    • 3、break语句
    • 4、continue语句
  • 二、do-while循环
  • 三、for循环
    • 1、基本语法
    • 2、注意事项
  • 四、循环总结


在前文我们已经详细讨论了流程控制中的分支结构,它在不同情境下会有不同的选择。现在,让我们一起来学习一下循环结构。循环结构就是将某一段操作反复进行。好了,让我们一起了解下循环结构吧~
在这里插入图片描述

一、while循环

1、基本语法

while ( 表达式 ) {
	代码块;
}

在这里插入图片描述

举个简单点例子吧,打印5次,你好!while循环!

public class Main {

    public static void main(String[] args) {
        int n = 5;
        while(n>0){
            System.out.println("你好!while循环!此时的n为:"+ n);
            n--;
        }
    }
}

在这里插入图片描述

2、注意事项

  • if 类似,while 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句,建议还是加上 { }

  • if 类似, while 后面的 { 建议和 while 写在同一行

  • if 类似, while 后面不要多写分号,否则可能导致循环不能正确执行

public class Main {

    public static void main(String[] args) {
        int num = 1;
        while (num <= 10); {
            System.out.println(num);
            num++;
        }
    }
}

在这里插入图片描述
因为,此时的 ;while的语句体(这是一个空语句),实际的 { } 部分和循环无关。此时循环条件 num <= 10 恒成立,导致代码死循环了。

在这里插入图片描述

3、break语句

break 的主要功能是在满足某个条件时终止循环或者跳出 switch 语句,提前结束代码块的执行。

举个例子,找到100~200中第一个3的倍数

public class Main {

    public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 3 == 0) {
                System.out.println("找到了 3 的倍数, 为:" + num);
                break;
            }
            num++;
        }
    }
}

在这里插入图片描述

因为在执行到 break 时就会跳出循环。

4、continue语句

continue是一种用于跳过当前循环中剩余的语句并进入下一次循环的关键字。它通常用于在循环中跳过某些条件不符合的代码块,从而提高程序效率。

当在循环体内使用continue语句时,会立即跳过该循环体内剩余的语句,并开始下一次循环,直到循环结束或者遇到break语句为止。

图片描述

行!和上面一样继续举个例子。找到100~200中所有3的倍数

public class Main {

    public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 3 != 0) {
                num++;
                continue;
            }
            System.out.println("找到了 3 的倍数, 为:" + num);
            num++;
        }
    }
}

在这里插入图片描述

二、do-while循环

do {
	循环语句;
} while(循环条件);

do-while循环是一种重复执行特定代码块的结构,与forwhile循环不同的是,它先执行一次循环体,再根据循环条件决定是否继续执行循环。举个简单的例子就明白了。

public class Main {

    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println(i);
            i++;
        } while (i > 10);
    }
}

在这里插入图片描述
do-while循环至少会执行一次循环体,即使循环条件一开始就为false

这与while循环的执行方式不同,while循环在循环条件一开始就为false时,不会执行任何循环体。总之,do-while循环是Java中一种与forwhile循环不同的重复执行代码块的结构,它先执行一次循环体,再根据循环条件决定是否继续执行循环。

三、for循环

1、基本语法

for (表达式① ; 布尔表达式② ; 表达式③ ) {
  	循环语句④ ;
}
  • 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次

  • 表达式2: 循环条件,满则循环继续,否则循环结束

  • 表达式3: 循环变量更新方式

for循环执行顺序:①②③④—>②③④—>②③④—>②③④—>②③④—>②③④—>******—>②为false时循环结束。

图片描述

和上面一样,举个简单的例子。打印5次,你好!for循环!

public class Main {

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("你好!for循环!i的状况:" + i +"< 5" );
        }
    }
}

在这里插入图片描述

2、注意事项

  • if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句,建议还是加上 { }

  • if 类似, for 后面的 { 建议和 while 写在同一行.

  • if 类似, for 后面不要多写分号, 否则可能导致循环不能正确执行.

  • while循环一样,结束单趟循环用continue,结束整个循环用break

四、循环总结

在 Java 中,forwhiledo-while 循环都是相通的,因为它们都用于实现迭代。其中,for循环和while循环用的多,do-while循环用的少。

【例如】计算 5 的阶乘

使用for循环写法:

public class Main {

    public static void main(String[] args) {
        int result = 1;
        for (int i = 1; i <= 5; i++) {
            result *= i;
        }
        System.out.println("5的阶乘 = " + result);
    }
}

使用while循环写法:

public class Main {

    public static void main(String[] args) {
        int n = 1;
        int result = 1;
        while (n <= 5) {
            result *= n;
            n++;
        }
        System.out.println("5的阶乘 = " + result);
    }
}

使用do- while循环写法:

public class Main {

    public static void main(String[] args) {
        int n = 1;
        int result = 1;
        do{
            result *= n;
            n++;
        }while(n <= 5);
        System.out.println("5的阶乘 = " + result);
    }
}

在这里插入图片描述


今天就先聊到这里了,希望看完这篇文章,你能学会Java的循环结构。我们下次再见!

在这里插入图片描述

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

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

相关文章

kafka集群工作机制

一、kafka在zookeeper上的元数据解释 kafka中的broker要选举Controller角色来管理整个kafka集群中的分区和副本状态。一个Topic下多个partition要选举Leader角色和客户端进行交互数据 Zookeeper客户端工具&#xff1a; prettyZoo。 下载地址&#xff1a;https://github.com/vr…

单调队列---数据结构与算法

简介 队列也是一种受限制的线性表和栈相类似&#xff0c;栈是先进后出&#xff0c;而队列是先进先出&#xff0c;就好像一没有底的桶&#xff0c;往里面放东西&#xff0c;如图 在这里也是用数组来实现队列&#xff0c;用数组实现的叫做顺序队列 队列的数组模拟 const int N…

网络安全的发展方向是什么?网络安全学什么内容

前言 不少小伙伴开始学习网络安全技术&#xff0c;但却不知道学习网络安全能找什么工作&#xff1f;网络安全是现下较为火热的职业岗位&#xff0c;吸引了许多企业和个人对网络安全技术的青睐。学习网络安全的人越来越多&#xff0c;网络安全也有很多发展方向。那么如何选择网…

mysql日期月份相关函数

从给定日期提取最后一天&#xff1a; 要知道2017年12月的最后日期&#xff0c;可以按以下方式执行LAST_DAY()函数&#xff1a;用法:输出&#xff1a; 2017-12-31 从给定的日期时间中提取最后一天&#xff1a; 要使用日期时间格式了解月份的最后日期&#xff0c;可以按以下方式…

目标检测算法改进系列之Backbone替换为NextViT

NextViT介绍 由于复杂的注意力机制和模型设计&#xff0c;大多数现有的视觉Transformer&#xff08;ViTs&#xff09;在现实的工业部署场景中不能像卷积神经网络&#xff08;CNNs&#xff09;那样高效地执行&#xff0c;例如TensorRT 和 CoreML。这带来了一个明显的挑战&#…

Html+Css+Js计算时间差,返回相差的天/时/分/秒(从未来的一个日期时间到当前日期时间的差)。

Html部分 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><link rel"stylesheet" type"text/css" href"css/index.css" /><script src"js/index.js" t…

库函数的模拟实现

前言&#xff1a; 在上一篇文章中我们了解到了一些库函数的使用&#xff0c;为了加深我们对库函数的理解&#xff0c;我们来模拟实现一下这些库函数的用法。 这是上一篇文章的链接&#xff1a; http://t.csdnimg.cn/r7SKNhttp://t.csdnimg.cn/r7SKN 1.模拟实现strlen 模拟…

【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )

文章目录 一、后置运算符重载1、前置运算符重载 与 后置运算符重载 的区别2、后置运算符重载添加 int 占位参数 上 2 2 2 篇博客 【C】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )【C】运算符…

算法题:盛最多水的容器

这个题目乍一看就是双指针&#xff0c;没想到官方解答也是双指针&#xff0c;我在官方的基础上优化了一下下&#xff0c;左右两边各一个指针&#xff0c;每次移动短的那一头的时候&#xff0c;不是移动一格&#xff0c;而是找到比短的那一头要长一点的&#xff0c;再进行比较。…

文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题

四、用go语言&#xff0c;重写 ENQUEUE 和 DEQUEUE 的代码&#xff0c;使之能处理队列的下溢和上溢。 文心一言&#xff1a; 在 Go 语言中&#xff0c;我们可以使用切片来实现队列。下面是如何实现 ENQUEUE 和 DEQUEUE 操作&#xff0c;同时处理队列的下溢和上溢的情况&#…

坦克世界WOT知识图谱三部曲之爬虫篇

文章目录 关于坦克世界1. 爬虫任务2. 获取坦克列表3. 获取坦克具体信息结束语 关于坦克世界 《坦克世界》(World of Tanks, WOT)是我在本科期间玩过的一款战争网游&#xff0c;由Wargaming公司研发。2010年10月30日在俄罗斯首发&#xff0c;2011年4月12日在北美和欧洲推出&…

目标检测算法改进系列之Backbone替换为RepViT

RepViT简介 轻量级模型研究一直是计算机视觉任务中的一个焦点&#xff0c;其目标是在降低计算成本的同时达到优秀的性能。轻量级模型与资源受限的移动设备尤其相关&#xff0c;使得视觉模型的边缘部署成为可能。在过去十年中&#xff0c;研究人员主要关注轻量级卷积神经网络&a…

整体网络架构p22

1. 两次卷积&#xff0c;一次池化。得到一个三维特征图&#xff0c;然后让三维的特征图&#xff0c;三个值进行相乘拉成特征向量&#xff0c;把得到的结果需要靠全连接层。 带参数计算才算一层 算conv的个数FC全连接层就得到卷积神经网络的层数 FC:全连接层 2. 3.reset网络&a…

连接查询-多表联合查

一、连接查询的分类 根据表的连接方式&#xff0c;连接查询分为内连接、外连接和全连接。 内连接&#xff1a; 等值连接非等值连接自连接外连接&#xff1a; 左外连接&#xff08;左连接&#xff09;右外连接&#xff08;右连接&#xff09; 全连接 二、笛卡尔积 交叉连接也…

番外--Task1:

""" 重置root管理员密码添加yum源测试软件包安装成功 """ step1: 在shell界面输入重启命令&#xff1b; step2: 重启过程中出现此界面&#xff0c;快速按键盘‘e’, 进入系统内核程序&#xff1b; step3: 在系统内核程序内&#xff0c…

【MATLAB源码-第42期】基于matlab的人民币面额识别系统(GUI)。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 基于 MATLAB 的人民币面额识别系统设计可以分为以下步骤&#xff1a; 1. 数据收集与预处理 数据收集&#xff1a; 收集不同面额的人民币照片&#xff0c;如 1 元、5 元、10 元、20 元、50 元和 100 元。确保在不同环境、不…

【算法学习】-【双指针】-【盛水最多的容器】

LeetCode原题链接&#xff1a;盛水最多的容器 下面是题目描述&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。…

Net相关的各类开源项目

Net相关的各类开源项目 WPFHandyControlLive-ChartsWPFDeveloperswpf-uidesignStylet WebScheduleMasterYiShaAdminBlog.CoreNebula.AdminNewLife.CubeOpenAuth UnityuGUIUnityCsReferenceEpitomeMyUnityFrameWorkKSFrameworkTowerDefense-GameFramework-Demo 通用ClientServer…

目标检测算法改进系列之Backbone替换为InceptionNeXt

InceptionNeXt 受 Vision Transformer 长距离依赖关系建模能力的启发&#xff0c;最近一些视觉模型开始上大 Kernel 的 Depth-Wise 卷积&#xff0c;比如一篇出色的工作 ConvNeXt。虽然这种 Depth-Wise 的算子只消耗少量的 FLOPs&#xff0c;但由于高昂的内存访问成本 (memory…

机器学习必修课 - 编码分类变量 encoding categorical variables

1. 数据预处理和数据集分割 import pandas as pd from sklearn.model_selection import train_test_split导入所需的Python库 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 # Read the data X pd.read_csv(/content/Housing-prices-data/t…