Java——循环语句

下面我们介绍循环控制结构。如果您想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:

  • for 循环
  • while 循环
  • do…while 循环

一、for 循环

for循环是一种控制结构,用于反复执行一段代码,直到满足指定的条件。for循环通常用于需要知道循环次数的场景。

1、 传统的 for 循环

1)介绍

传统的for循环有三个部分:初始化语句、条件表达式和更新语句。这三个部分一起控制了循环的执行。

for (initialization; condition; update) {
    // 循环体
}
  • initialization:在循环开始前执行一次,用于初始化循环控制变量。
  • condition:每次循环开始时计算,如果返回true,则执行循环体;如果返回false,则退出循环。
  • update:每次循环结束后执行,用于更新循环控制变量。

例如:

public class Test {
	public static void main(String[] args) {
		for(int i = 0; i < 10; i++) {
			System.out.println("i = " + i);
		}
	}
}

运行结果:

2)补充

条件表达式的结果应当是 boolean 类型的值。

    int i = 0;
    for(; i < 10; ) {
		System.out.println("i = " + i);
        i++;
	}

初始化语句和循环变量迭代语句都可以放到其他地方,但是,for 循环后的圆括号中要有两个分号。

可以使用以下代码表示一个死循环(也就是无限循环):

    for(;;) {
        //...
    }

在死循环运行时可以使用 Ctrl + C 终止这一个循环。

初始化语句、条件表达式和更新语句都可以有多个,中间使用逗号隔开。

    for(int i = 0,j = 0; i < 10,j < 20; i++,j += 2) {
        //...
    }

3)示例

打印 100 以内包括 100 的所有是 5 的倍数的数字。

public class Test {
	public static void main(String[] args) {
		for(int i = 0; i <= 100; i += 5) {
			System.out.print(i + " ");
		}
	}
}

运行结果:

2、增强型的 for 循环

增强的for循环用于遍历数组或集合,无需使用索引变量。它提供了一种更简洁的方式来遍历所有元素。

for (type element : collection) {
    // 循环体
}
  • type:元素的类型。
  • element:每次循环时取得的元素。
  • collection:要遍历的数组或集合。

例如:

public class Test {
	public static void main(String[] args) {
		int[] arr = {1, 3, 5, 7, 9};
		for(int i : arr) {
			System.out.println(i);
		}
	}
}

运行结果:

二、while 循环

while循环是一种基本的控制结构,用于重复执行一段代码块,直到给定的条件为假(false)。while循环的基本构成是一个循环条件和一个循环体。只要循环条件的结果为真(true),循环体内的代码就会被执行。一旦循环条件为假,循环就会终止。

while (condition) {
    // 循环体代码
    // 循环变量迭代
}
  • condition(条件):这是一个布尔表达式(即结果为truefalse的表达式)。在每次循环开始前,都会评估这个条件。如果条件为true,则执行循环体内的代码。如果条件为false,循环则终止。
  • 循环体:这是一组在每次循环时执行的语句。如果条件永远为true,这些语句就会无限重复执行,导致一个无限循环。

例如:

public class Test {
	public static void main(String[] args) {
		int i = 0;
		while(i <= 5) {
			System.out.println(i);
			i++;
		}
	}
}

运行结果:

示例:

打印一百以内包括一百的是 4 的倍数的数字。

public class Test {
	public static void main(String[] args) {
		int i = 0;
		while(i <= 100) {
			if(i % 4 == 0) {
				System.out.print(i + " ");
			}
			i++;
		}
	}
}

运行结果:

三、do while 循环

do-while循环是一种后测试循环,这意味着它至少会执行一次循环体,然后在每次迭代结束时检查循环条件。这与while循环不同,while循环是先测试循环条件,可能一次都不执行循环体。

do {
    // 循环体代码
    // 循环变量迭代
} while (condition);
  • 循环体:这是在每次循环时执行的代码块。
  • condition(条件):这是一个布尔表达式,用于决定是否继续循环。在每次循环体执行完毕后,会检查这个条件。如果条件为true,则继续下一次循环;如果条件为false,则循环结束。

例如:

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

运行结果:

四、嵌套循环

循环也是可以嵌套的。

示例:

打印九九乘法表。

public class Test {
	public static void main(String[] args) {
		int i = 1;
		int j = 1;
		for(i = 1; i <= 9; i++) {
			for(j = 1; j <= i; j++) {
				System.out.print(j + "*" + i + "=" + (i * j) + "\t");
			}
			System.out.println("");
		}
	}
}

运行结果:

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

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

相关文章

每天五分钟深度学习PyTorch:Tensor张量的索引和切片

本文重点 有时候当我们拥有一个Tensor张量的时候,我们可能需要获取它某一维度的信息,那么此时我们就需要索引和切片的技术,它们可以帮助我们解决这些问题。 切片操作 a是四维的,然后默认是从第一维开始取,逗号表示取不同的维度 a[:2]表示第一维取0,1,后面三维取所有 …

JAVA小案例-分别计算100以内奇数和偶数的和

JAVA小案例-分别计算100以内奇数和偶数的和 没啥可说的&#xff0c;就是for循环加if分支&#xff0c;也可以用while写。 代码如下&#xff1a; public class Jiouhe {/*** 分别计算100以内奇数和偶数的和* param args*/public static void main(String[] args){int sum10;in…

C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍

文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归&#xff0c;需要使用栈来实现。将左右下标分别push到栈中。在栈为…

【ubuntu软件版本管理】利用update-alternatives管理ubuntu软件

​ 我们有的时候希望在安装了新软件之后保留旧版本的软件&#xff0c;比如希望保留旧版本的gcc&#xff0c;以防以前写的C编译出问题&#xff0c;这时候就需要版本管理软件update-alternatives。 ​ 在此之前我们需要先弄清楚&#xff0c;什么是ubuntu的软件&#xff1f;拿C源…

微服务开发与实战Day02 - Docker

一、Docker快速入门 快速构建、运行、管理应用的工具 安装部署教程&#xff1a;Docs 1. 部署MySQL 测试连接&#xff1a; 镜像和容器 当我们利用Docker安装应用时&#xff0c;Docker会自动搜索并下载应用镜像&#xff08;image&#xff09;。镜像不仅包含应用本身&#xff…

Go微服务: 基于rocketmq:5.2.0搭建RocketMQ环境,以及示例参考

概述 参考最新官方文档&#xff1a;https://rocketmq.apache.org/zh/docs/quickStart/03quickstartWithDockercompose以及&#xff1a;https://rocketmq.apache.org/zh/docs/deploymentOperations/04Dashboard综合以上两个文档来搭建环境 搭建RocketMQ环境 1 ) 基于 docker-c…

RTOS笔记--任务状态与调度

任务状态 freertos中的任务分为四个状态&#xff1a;就绪状态&#xff08;ready&#xff09;、运行状态&#xff08;running&#xff09;、阻塞状态&#xff08;blocked&#xff09;、暂停状态&#xff08;suspended&#xff09; 完整的任务状态转换图&#xff1a; 在使用vTas…

04--Tomcat

前言&#xff1a;本章整理tomcat的知识点&#xff0c;tomcat知识点相较nginx比较少&#xff0c;但是也是运维必会的软件&#xff0c;这里结合实际项目整理一下。 1、tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#x…

在线建站流程分析

建站流程是指通过互联网创建一个个人或企业网站的过程。随着互联网的发展&#xff0c;越来越多的人和机构开始意识到网络的重要性&#xff0c;建站成为一种常见的行为。在线建站的流程一般包括以下几个步骤。 首先&#xff0c;选择一个合适的建站平台。目前&#xff0c;有很多在…

英伟达Docker 安装与GPu镜像拉取

获取nvidia_docker压缩包nvidia_docker.tgz将压缩包上传至服务器指定目录解压nvidia_docker.tgz压缩包 tar -zxvf 压缩包执行rpm安装命令&#xff1a; #查看指定rpm包安装情况 rpm -qa | grep libstdc #查看指定rpm包下的依赖包的版本情况 strings /lib64/libstdc |grep GLI…

这才是大模型价格战背后的真相

想必大家今天肯定被各家大模型厂商的降价新闻刷圈了&#xff0c;如果说 Meta Llama 3 的开源是国外大模型市场的搅局者&#xff0c;那 DeepSeek-V2 就是国内大模型市场的鲶鱼&#xff0c;但是价格战背后是大模型基础设施优化带来的物美价廉&#xff0c;还是浑水摸鱼的噱头&…

数据结构——(java版)包装类与泛型

文章目录 一 包装类1.1 包装类的概念1.2 装箱/装包1.3 拆箱/拆包1.4 一个面试题&#xff1a; 二 泛型2.1 什么是泛型&#xff1f;2.2 泛型的使用2.3 泛型的上界2.4 泛型实现Comparable接口2.5 擦除机制另外&#xff1a; 一 包装类 1.1 包装类的概念 在java中基本数据类型并不…

中国自动气象站:现代气象观测的中流砥柱

引言 气象观测是人类认识和预报天气的重要手段。在现代科技的推动下&#xff0c;自动气象站成为气象观测的重要工具&#xff0c;为天气预报、防灾减灾和气候研究提供了宝贵的数据支持。本文将介绍中国自动气象站的发展历程、技术特点及其在气象观测中的重要作用。 中国自动气象…

【Linux】信号(一)

信号我们将从信号产生&#xff0c;信号的保存&#xff0c;信号处理分别进行讲解~ 至少大思路是这样。开始之前还要进行一些基础知识的铺垫。 目录 从生活中提炼一些结论&#xff1a;信号概念的一些储备&#xff1a;信号产生&#xff1a;一、kill指令&#xff1a;二、键盘组合键…

BP 客户主数据-国际贸易条款发生更改

Issue &#xff1a;ECC升级S4后 1&#xff09;客户主数据扩产线时(LHGX03)&#xff0c;国贸条件2变更记录查询时&#xff0c;所扩产线&#xff08;30 1C&#xff09;无变更记录&#xff0c;未变更产线&#xff08;10 1C/1H/1M&#xff09;确认变更记录 20230108新增&#xff1…

生命在于学习——Python人工智能原理(3.2)

三、深度学习 &#xff08;二&#xff09;人工神经网络 人工神经网络是模仿人类大脑神经系统工作原理所创建的数学模型&#xff0c;有并行的分布处理能力、高容错性和自我学习等特征。 1、感知器 感知器由Frank Roseblatt于1957年提出&#xff0c;是一种广泛使用的线性分类…

Matlab解决矩阵微分方程建模(代码开源)

#用matlab解决施密特正交规范化矩阵之后&#xff0c;我又想到矩阵的微分方程计算量真的太大了&#xff0c;来回转化让我头大&#xff0c;于是我尝试了一下用matlab建立模型来解决这类问题。 代码部分如下&#xff1a;注解还挺清晰的&#xff1a; %%%解微分方程组%eg&#xff…

多目标优化-NSGA-II

文章目录 一、前置知识NSGA-II帕累托前沿 二、算法流程1.NSGA2.NSGA-II 一、前置知识 1.NSGA(非支配排序遗传算法):旨在同时优化多个冲突的目标函数&#xff0c;寻找帕累托前沿上的解集。 什么是多个冲突的目标: 比如你看上了一辆车&#xff0c;你既想要它便宜&#xff0c;又…

一个思维狂赚20万+?揭秘电商平台隐藏的流量认知!

你想要的流量&#xff0c;资源&#xff0c;人脉&#xff0c;都已经有人为你准备&#xff0c;你只需要找到拥有这些资源的人。对于流量和信息&#xff0c;也是一样&#xff0c;你想找的客户和产品&#xff0c;都已经有人为你准备在淘宝、拼多多等电商平台&#xff0c;你只需要找…

掌握Postman,轻松调试POST与GET接口:详细安装与实战教程,让你的API测试更高效

0.前言 在确保数据接口的稳定性和可访问性方面&#xff0c;使用专业的接口测试工具至关重要。这些工具不仅简化了测试流程&#xff0c;还提供了无需编写额外代码即可轻松调用和调试接口的能力&#xff0c;从而大大提高了测试效率和准确性。 0.1 Postman 背景介绍 用户在开发或…