Java 的循环

Java 有三种循环:for,while,do while。

for

基本语法:

for (循环变量初始化; 循环条件; 循环变量迭代){循环语句;
}

程序示例:

public static void main(String[] args) {for (int i = 0, j = 0; i < 3; i++, j--) {System.out.println("Hello World");}
}

循环变量初始化可以定义多个变量,循环变量迭代可以有多个。

程序示例:

// 需求:从键盘录入两个数字,表示一个范围,统计这个范围中,既能被 3 整除,又能被 5 整除的数字有多少个?import java.util.Scanner;public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = sc.nextInt();System.out.print("请输入第二个整数:");int num2 = sc.nextInt();int min = num1 < num2 ? num1 : num2;int max = num1 > num2 ? num1 : num2;int count = 0;for (int i = min; i <= max; i++) {if (i % 3 == 0 && i % 5 == 0)++count;}System.out.print("从" + min + "到" + max + "既能被3整除又能被5整除的数字有" + count + "个。");}
}

执行结果 1:

请输入第一个整数:1
请输入第二个整数:20
从1到20既能被3整除又能被5整除的数字有1个。

执行结果 2:

请输入第一个整数:20
请输入第二个整数:1
从1到20既能被3整除又能被5整除的数字有1个。

错误程序示例 1:

public static void main(String[] args) {int i = 9;for (int i = 0, j = 0; i < 3; i++, j--) { // 已在方法 main(java.lang.String[]) 中定义了变量 iSystem.out.println("Hello World");}
}

错误程序示例 2:

public static void main(String[] args) {for (int i = 0, j = 0; i < 3; i++, j--) {int i = 9;  // 已在方法 main(java.lang.String[]) 中定义了变量 iSystem.out.println("Hello World");}
}

错误程序示例 3:

public static void main(String[] args) {int i = 9;for (int a = 0, j = 0; a < 3; i++, j--) {int i = 9; // 已在方法 main(java.lang.String[])中定义了变量 iSystem.out.println("Hello World");}
}

都会报错:已在方法 main(java.lang.String[]) 中定义了变量 i

//正确
public static void main(String[] args) {for (int i = 0, j = 0; i < 3; i++, j--) {System.out.println("Hello World");}for (int i = 0, j = 0; i < 3; i++, j--) {System.out.println("Hello World");}
}

主 scope 和子 scope 不能重复定义,两个子 scope 可重复定义。

循环条件返回一个 boolean 值。

for 循环头的三个表达式都可以省略,但是分号不能省略,省略循环条件表示一直为真。

快速书写 for 循环的方法:

先输入 50.fori,然后回车:

[图片]

自动生成了一个 for 循环,起始为 0,终止为 50,循环变量是自动的,且会保证不会发生作用域冲突:

[图片]

while

基本语法:

循环变量初始化;
while (循环条件){循环体;循环变量迭代;
}

while 循环也有四个要素,只是放置的位置不一样。

练习:

// 需求:世界最高山峰是珠穆朗玛峰(8844.43 米 = 8844430 毫米),
// 假如我有一张足够大的纸,它的厚度是 0.1 毫米。
// 请问,我折叠多少次,可以折成珠穆朗玛峰的高度?public static void main(String[] args) {int HEIGHT = 8844430;double init = 0.1;int count = 0;while (init <= HEIGHT) {init *= 2;++count;}System.out.println(init);System.out.println(count);
}

执行结果:

1.34217728E7
27

练习:

// 回文数:
// 需求:给你一个整数 x。
// 如果 x 是一个回文整数,打印 true,否则,返回 false。
// 解释:回文数是指正序(从左向右)和倒序(从右向左)读都是是一样的整数。
// 例如,121 是回文,而 123 不是。import java.util.Scanner;public class whileTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入一个整数:");int n = sc.nextInt();int tmp = n;int num = 0;while (tmp != 0) {int get = tmp % 10;tmp /= 10;num = num * 10 + get;}System.out.println(n == num);}
}

执行结果:

请输入一个整数:121
true

练习:

// 需求:给定两个整数,被除数和除数(都是正数,且不超过 int 的范围)。
// 将两数相除,要求不使用乘法、除法和 % 运算符。
// 得到商和余数。import java.util.Scanner;public class whileTest2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入被除数:");int dividend = sc.nextInt();System.out.print("请输入除数:");int divisor = sc.nextInt();int count = 0;while (dividend >= divisor) {dividend -= divisor;++count;}System.out.println("商为" + count + ",余数为" + dividend);}
}

执行结果:

请输入被除数:13
请输入除数:3
商为4,余数为1

循环条件返回一个 boolean 值。

程序示例:

public class While {public static void main(String[] args) {int i = 0;while (i) {System.out.println("Hello");}}
}

报错: 不兼容的类型: int 无法转换为 boolean

for 和 while 的对比:

相同点:运行规则都是一样的。

区别:for 循环中,循环控制变量归属于 for 循环的语法结构中,在 for 循环结束后,就不能再次被访问了。while 循环中,循环控制变量不归属于 while,在 while 循环结束之后,该变量还可以继续使用。如果 for 循环的循环控制变量在 for 前面定义,而不是在 for 循环头中定义,则当 for 结束了该变量依旧可以使用。

能用 for 的地方一定能用 while 进行改写,能用 while 的地方一定能用 for 进行改写。

一般如果知道循环次数或者循环范围,就用 for,否则用 while。无限循环是不知道循环次数的,因此无限循环一般都使用 while。

do while

基本语法:

循环变量初始化;
do{循环体;循环变量迭代;
}while (循环条件);

do while 是关键字。

也有四要素,只是位置不一样。

循环条件返回一个 boolean 值。

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

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

相关文章

即时设计工具对决:Figma、Sketch与XD的优劣比较

最近几年&#xff0c;UI 设计工具出现了许多后起之秀&#xff0c;其中有四款更具代表性的UI设计软件&#xff1a;Sketch、Adobe XD、Figma 和 即时设计&#xff0c;这四个设计软件都有自己的优势。如果合作对您的UI设计过程至关重要&#xff0c;那么Figma 和 即时设计 它应该是…

FJSP:烟花算法(FWA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、烟花算法介绍 参考文献&#xff1a; Tan, Y. and Y. Zhu. Fireworks Algorithm for Optimization. in Advances in Swarm Intelligence. 2010. Berlin, Heidelberg: Springer Berlin Heidelberg. 二、烟花算法求解FJSP 2.1FJSP模型介绍 柔性作业车间调度问题(Flexible …

SpringBoot: 可执行jar的特殊逻辑

这一篇我们来看看Java代码怎么操作zip文件(jar文件)&#xff0c;然后SpringBoot的特殊处理&#xff0c;文章分为2部分 Zip API解释&#xff0c;看看我们工具箱里有哪些工具能用SpringBoot的特殊处理&#xff0c;看看SpringBoot Jar和普通Jar的不同 1. Zip API解释 1. ZipFil…

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接&#xff1a;Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…

将字符串str1复制为字符串str2

定义两个字符数组str1和str2&#xff0c;再设两个指针变量p1和p2&#xff0c;分别指向两个字符数组中的有关字符&#xff0c;通过改变指针变量的值使它们指向字符串中的不同的字符&#xff0c;以实现字符的复制。编写程序&#xff1a; 运行程序&#xff1a; 程序分析&#xff1…

数据库(28)——联合查询

对于union查询&#xff0c;就是把多次查询的结果合并起来&#xff0c;形成一个新的查询结果集。 语法 SELECT 字段列表 FROM 表A... UNION [ALL] SELECT 字段列表 FROM 表B...; 演示 select * from user where age > 22 union all select * from user where age < 50; u…

MyBatisPlus插件生成代码

文章目录 概要安装插件使用插件 概要 MyBatis-Plus 是 MyBatis 的增强工具&#xff0c;旨在简化 MyBatis 的开发。MyBatis-Plus 代码生成器插件可以自动生成项目中常见的代码&#xff0c;如实体类、Mapper 接口、Service 接口和实现类、Controller 等&#xff0c;从而减少手动…

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…

JVM学习-监控工具(一)

使用数据说明问题&#xff0c;使用知识分析问题&#xff0c;使用工具处理问题 无监控&#xff0c;不调优&#xff01; 命令行工具 在JDK安装目录下&#xff0c;可以查看到相应的命令行工具&#xff0c;如下图 jps(Java Process Status) 显示指定系统内所有的Hotpot虚拟机…

前端三大件速成 05 javascript(1)js组成、引入、基本语法

文章目录 一、js组成二、js的引入三、基本语法1、变量2、基本规范3、关键字4、数据类型&#xff08;1&#xff09;基本数据类型&#xff08;2&#xff09;引用数据类型&#xff08;3&#xff09;数据类型转换&#xff08;4&#xff09;typeof运算符 5、运算符6、流程控制&#…

轻松构建聊天机器人,大模型 RAG 有了更强大的AI检索器

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

每日两题6

文章目录 删除并获得点数粉刷房子 删除并获得点数 分析 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;// 预处理int arr[N] {0};for (int& e : nums)arr[e] e;// 在 arr 上进行 打家劫舍 问题vector<int> f(N),…

《2024年网络安全预测:未来规划深度洞察》

2024 年打击网络对手的计划。 阅读报告&#xff0c;了解我们的专家对 2024 年网络安全行业的预测&#xff0c;包括&#xff1a; 攻击者将人工智能融入其行动中&#xff0c;防御者利用它来加强检测和响应 民族国家继续开展网络行动以实现其地缘政治目标 攻击者继续利用零日漏洞…

Git从入门到放弃

由于我的Git学的不太好&#xff0c;所以为了能够将以后我的学习笔记能够整理的更好&#xff0c;我先要系统的学习一下git&#xff0c;文章由此产生。 文章笔记源自尚硅谷Git入门到精通全套教程视频内容 1 进入官网 学习新技术的第一步需要熟悉官网&#xff0c;Git也不例外。ht…

Java 环境配置 -- Java 语言的安装、配置、编译与运行

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 002 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

为什么要做与运算?网关如何和ip做与运算?

在计算机网络中&#xff0c;“与运算”是一个基本而重要的概念&#xff0c;尤其在IP地址和子网掩码的处理中起着关键作用。本文将解释为什么要进行与运算&#xff0c;以及网关如何和IP地址进行与运算。 为什么要做与运算&#xff1f; 1. 确定网络地址 与运算&#xff08;AND…

自然语言处理:第三十二章HippoRAG:性能提高20% - 受海马体启发的RAG

文章链接: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models 项目地址: OSU-NLP-Group/HippoRAG: HippoRAG is a novel RAG framework inspired by human long-term memory that enables LLMs to continuously integrate knowledge across e…

二分+模拟,CF1461D - Divide and Summarize

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1461D - Codeforces 二、解题报告 1、思路分析 我们发现每次分裂操作结果都是固定的 我们从初始序列分裂出两个确定的子序列&#xff0c;两个确定的子序列又分裂出4个确定的子序列 那么也就是说…

实验二、网络属性设置《计算机网络》

精神状态 be like&#xff1a;边写边崩溃&#xff0c;越写越得劲儿。 目录 一、实验目的&#xff1a; 二、实验内容 三、实验步骤&#xff1a; 四、实验小结 一、实验目的&#xff1a; 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识&#xff1a; 1、…

android集成百度文心一言实现对话功能,实战项目讲解,人人都能拥有一款ai应用

大家好&#xff0c;今天给大家讲解下如何实现一个基于百度文心一言的app功能&#xff0c;app内部同时集成了讯飞的语音识别。本文适用于有android基础的小伙伴阅读&#xff0c;文章末尾放上本项目用到的全部实例代码&#xff0c;在使用前请务必看完本文章。 先来给大家看看效果…