【JavaSE】-5-嵌套循环

回顾

一、java语言特点

二、配置java环境 path

三、记事本 javac -d . java 包名.类名

四、eclipse

五、变量 定义变量 数据类型 变量名=值;

六、相关的数据类型

​ 基本(四类 、8种)、引用

​ 类型转换(自动、强制)

​ 运算符(算术 ++ --、逻辑 && & || |、比较、三元 )

​ 三目:变量 = 表达式一 ? 表达式二 :表达式三

七、变量名的命名规则

八:顺序结构

九:选择结构

​ if(){} if(){}else if(){}else if(){} if()else{}

​ switch(表达式){} byte short int char enum string

十、循环结构

for

for(变量初始化;控制循环条件;变量的递增或者递减){循环体;
}
第一次循环:变量初始化;(只执行一次)控制循环条件循环体变量的递增或者递减
第二次运行、第三次....控制循环条件循环体变量的递增或者递减int i = 1;
for(;;){if(i++>=5){break;}
}

当明确循环次数的情况下,使用for循环。如果不确定循环次数,就选择while循环。

开发过程中,基本使用for循环。

while

先判断、再执行。

while(条件){循环体;
}
外部;

示例1:

//		通过while循环打印10遍"Hello World"int i = 1;while(i++ <= 10) {System.out.println("hello world!");
//			i++;}

示例2:

//		需求:限定用户输入内容。
//		提示用户输入1~7(含1和7)之间的数字。
//		如果用户输入的数字范围不在1~7之内,
//		让用户重新输入,直到用户输入的数字符合要求。Scanner sc = new Scanner(System.in);//		System.out.println("请输入1-7之间的数字:");
//		int num = sc.nextInt();	
//		while(num<1 || num>7) {
//			System.out.println("请输入1-7之间的数字:");
//			num = sc.nextInt();
//		}//		int num = 0;
//		do {
//			System.out.println("请输入1-7之间的数字:");
//			num = sc.nextInt();
//		}while(num<1 || num>7);int num = 0;while(num<1 || num>7) {System.out.println("请输入1-7之间的数字:");num = sc.nextInt();}
int num = 0;  //变量初始化  表达式一while(num<1 || num>7) {//控制循环条件  表达式二System.out.println("请输入1-7之间的数字:");num = sc.nextInt();//控制值的变化--递增、递减   表达式三}for(表达式一;表达式一;表达式一){}

do…while

先执行一次,再判断。至少执行一次循环体。

do{循环体;
}while(条件);

示例:

//		需求:生成2个[10, 20]之间的随机数,
//		如果生成的2个数不相等,
//		再重新生成,直到2个数相等。Random r = new Random();//r.nextInt(max-min+1)+minint num1 = 0;int num2 = 0;do {num1 = r.nextInt(11)+10;num2 = r.nextInt(11)+10;System.out.println(num1+"======="+num2);}while(num1 != num2);
//		输入一个整数,判断是几位数。Scanner sc = new Scanner(System.in);int num = sc.nextInt();// 1/10=0  12/10/10  123/10/10/10 12345/10/10/10/10/10=0int num2 = num;int count = 0;do {num /= 10;count++;}while(num!=0);System.out.println(num2+"的位数是:"+count);

需求:输入一个整数,判断是几位数。

需求:世界上最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如有一张足够大的纸,它的厚度是0.1毫米。请问折叠多少次,可以折成珠穆朗玛峰的高度?

需求:生成2个[10, 20]之间的随机数,如果生成的2个数不相等,再重新生成,直到2个数相等。

需求:如果你是一个富二代,你有10亿元(1000000000),每天花一半,多天可以花完。

需求:在控制台打印出所有的水仙花数。水仙花数:是一个三位数,水仙花数的个位、十位、百位数字的立方之和等于原数。

//		需求:输入一个整数,判断是几位数。  102233/10/10/10/10
//
//		需求:世界上最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),
//		假如有一张足够大的纸,它的厚度是0.1毫米。
//		请问折叠多少次,可以折成珠穆朗玛峰的高度?//0.1  0.2  0.4  0.8double height = 0.1;int count = 0;do {height *= 2;count++;}while(height <= 8844430);System.out.println(count);//		需求:生成2个[10, 20]之间的随机数,如果生成的2个数不相等,再重新生成,直到2个数相等。int num1 = 0;int num2 = 0;Random r = new Random(); do {num1 = r.nextInt(11)+10;num2 = r.nextInt(11)+10;System.out.println(num1+"---"+num2);}while(num1 != num2);//		需求:如果你是一个富二代,你有10亿元(1000000000),每天花一半,多天可以花完。//1000000000  /2  500000000     0int num = 1000000000;int days = 1;while((num/=2) !=0 ) {days++;}System.out.println(days++);
//		需求:在控制台打印出所有的水仙花数。
//		水仙花数:是一个三位数,水仙花数的个位、十位、百位数字的立方之和等于原数。int i = 100;while(i<1000) {//i 100 个位 十位  百位 int a = i/100;int b = i/10%10;int c = i%10;if(a*a*a+b*b*b+c*c*c==i) {System.out.println(i+" ");}i++;}

break和continue关键字

break: 用于结束循环,用在switch…case结构种,用于结束case语句。

switch(){case:语句;break;
}for(int i=1;i<10;i++){syso(i);//break前break;syso(i);//break前  编译不通过
}boolean flag = true;
Scanner sc = new Scanner(System.in);
while(flag){int num = sc.nextInt();if(num == 10){flag = false;}
}while(true){if(num == 10){break;syso();//编译报错}
}do{if(){break; }
}while(true);

示例代码:

for(int i=1;i<10;i++) {System.out.println(i);if(i == 5) {break;}System.out.println("***");
}
System.out.println("for循环外部");
//		用户可以在控制台输入任意字符串,
//		当用户输出字符串是"exit"的时候,
//		认为是结束输出,用户将不能再输入任何内容。Scanner sc = new Scanner(System.in);while(true) {System.out.print("请输入...");String str = sc.next();if(str.equalsIgnoreCase("exit")) {//退出break;}}

需求:猜数字。产生1个[10, 30]的随机数,从键盘上输入你的猜测结果,如果猜测的数比随机数大,提示"你猜的数据大了",如果猜测的数比随机数小,提示"你猜测的数据小了",如果猜测的数和随机数一样大,提示"恭喜你猜对了",计算出猜了几次才猜对。

Random r = new Random();
Scanner sc = new Scanner(System.in);
int count = 0;
do {int num1 = r.nextInt(21)+10;System.out.print("请录入:");int num2 = sc.nextInt();count++;if(num1>num2) {System.out.println("随机数是:"+num1+"猜小了!");}else if(num1<num2) {System.out.println("随机数是:"+num1+"猜大了!");}else {System.out.println("随机数是:"+num1+"猜对了!");break;}
}while(true);
System.out.println("一共猜了"+count+"次!");

continue只是结束本次循环,而不是结束整个循环。continue通常情况下也是与if语句搭配使用。

for(int i = 1;i<100;i++) {if(i % 7 == 0) {continue;}System.out.print(i+" ");
}
System.out.println("----");

break、continue总结

  1. break用于结束当前循环。
  2. continue用于结束本次循环。
  3. break、continue通常是与if语句连用。即某种条件满足时才break或continue。
  4. break使用比较频繁,经常用在死循环里结束循环。或者用在for循环里提前结束循环。
  5. continue很少使用。

嵌套循环

循环嵌套:一个循环作为另外一个循环的循环体或者是循环体的一部分。

for(){ //外层循环for(){//内层循环}
}
while(){while(){}
}while(){for(){}
}[{id:1address:[{河南郑州},{河南信阳}]},{},{}
]

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
System.out.println("1 2 3 4 5 ");
..........
for(int i = 0;i<3;i++){System.out.println("1 2 3 4 5 ");
}
..........
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
for(int i = 1;i<=100;i++){System.out.print(i+" ");
}
-----------------
for(int i = 1;i < 4;i++) {//外层循环控制行 行数for(int j=1;j<=10;j++) {//内层循环控制列  列数System.out.print(j+" ");	//每列的值}System.out.println();
}
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 for(int i=1;i<=1;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=2;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=3;i++){System.out.print(i+" ");
}
System.out.println();for(int i=1;i<=4;i++){System.out.print(i+" ");
}
System.out.println();
-------------------------------for(int i=1;i<6;i++){for(int j=1;j<=i;j++){System.out.print(j+" ");}System.out.println();
}
--------------------------------
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
平面图形  行、列 双层循环
外层循环控制行
内层循环控制列
for(int i=1;i<5;i++){//控制行数//第一行 i=1  列数1//第二行 i=2  列数2//第三行 i=3  列表3for(int j=1;j<=i;j++){ //控制列数  //内层循环体 打印输出 每列的值System.out.print(j+" ");}System.out.println();
}    
1 2 3 4 5 
1 2 3 4 
1 2 3 
1 2 
1 
for(int i=1;i<=5;i++) {for(int j=1;j<=6-i;j++) {System.out.print(j+" ");}System.out.println();
}for(int i=5;i>=1;i--) {for(int j=1;j<=i;j++) {System.out.print(j+" ");}System.out.println();
}

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

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

相关文章

Java面向对象(高级)-- 类中属性赋值的位置及过程

文章目录 一、赋值顺序&#xff08;1&#xff09;赋值的位置及顺序&#xff08;2&#xff09;举例&#xff08;3&#xff09;字节码文件&#xff08;4&#xff09;进一步探索&#xff08;5&#xff09;最终赋值顺序&#xff08;6&#xff09;实际开发如何选 二、(超纲)关于字节…

1992-2021年省市县经过矫正的夜间灯光数据(GNLD、VIIRS)

1992-2021年省市县经过矫正的夜间灯光数据&#xff08;GNLD、VIIRS&#xff09; 1、时间&#xff1a;1992-2021年3月&#xff0c;其中1992-2013年为年度数据&#xff0c;2013-2021年3月为月度数据 2、来源&#xff1a;DMSP、VIIRS 3、范围&#xff1a;分区域汇总&#xff1a…

SpringBoot : ch05 整合Mybatis

前言 随着Java Web应用程序的快速发展&#xff0c;开发人员需要越来越多地关注如何高效地构建可靠的应用程序。Spring Boot作为一种快速开发框架&#xff0c;旨在简化基于Spring的应用程序的初始搭建和开发过程。而MyBatis作为一种优秀的持久层框架&#xff0c;提供了对数据库…

【Linux】-进程间通信-共享内存(SystemV),详解接口函数以及原理(使用管道处理同步互斥机制)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

中低压MOSFET 2N7002T 60V 300mA 双N通道 采用SOT-523封装形式

2N7002KW小电流双N通道MOSFET&#xff0c;电压60V电流300mA&#xff0c;采用SOT-523封装形式。低Ros (on)的高密度单元设计&#xff0c;坚固可靠&#xff0c;具有高饱和电流能力&#xff0c;ESD防护门HBM2KV。可应用于直流/直流转换器&#xff0c;电池开关等产品应用上。

Redis JDBC

1、导入依赖&#xff1a; <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.4.3</version></dependency> 2、连接JDBC public class JedisDemo05 {public static void main(String[]…

成为AI产品经理——AI产品经理工作全流程

一、业务背景 背景&#xff1a;日常排球训练&#xff0c;中考排球项目和排球体测项目耗费大量人力成本和时间成本。 目标&#xff1a;开发一套用于实时检测排球运动并进行排球垫球计数和姿势分析的软件。 二、产品工作流程 我们这里对于产品工作流程的关键部分进行讲解&…

「Docker」如何在苹果电脑上构建简单的Go云原生程序「MacOS」

介绍 使用Docker开发Golang云原生应用程序&#xff0c;使用Golang服务和Redis服务 注&#xff1a;写得很详细 为方便我的朋友可以看懂 环境部署 确保已经安装Go、docker等基础配置 官网下载链接直达&#xff1a;Docker官网下载 Go官网下载 操作步骤 第一步 创建一个…

Java 多线程之 DCL(Double-Checked Locking)

文章目录 一、概述二、使用方法 一、概述 DCL&#xff08;Double-Checked Locking&#xff09;是一种用于在多线程环境下实现延迟初始化的技术。它结合了懒加载&#xff08;Lazy Initialization&#xff09;和线程安全性&#xff0c;用于在需要时创建单例对象或共享资源。它的…

什么是SEO?(初学者建议收藏)

前言 在这个充满机遇和挑战的时代&#xff0c;人们不断追求着更好的生活和更高的成就。无论是个人还是企业&#xff0c;都需要不断提升自己的竞争力&#xff0c;才能在激烈的市场竞争中获得成功。因此&#xff0c;我们需要不断学习和成长&#xff0c;学会适应变化和面对挑战。…

汽车智能座舱/智能驾驶SOC -2

第二篇&#xff08;笔记&#xff09;。 未来智能汽车电子电气将会是集中式架构&#xff08;车载数据中心&#xff09;虚拟化技术&#xff08;提供车载数据中心灵活性和安全性&#xff09;这个几乎是毋庸置疑的了。国际大厂也否纷纷布局超算芯片和车载数据中心平台。但是演进需…

日期格式转化成星期几部署到linux显示英文

异常收集 原因&#xff1a;解决办法仰天大笑出门去&#xff0c;我辈岂是蓬蒿人 传入一个时间获取这个时间对应的是星期几&#xff0c;在开发环境&#xff08;window系统&#xff09;中显示为星期几&#xff0c;部署到服务器&#xff08;linux系统&#xff09;中会显示英文的时间…

serverless开发实战

.yml格式 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化格式&#xff0c;它使用简洁的结构和缩进来表示数据。它被广泛用于配置文件和数据交换的场景&#xff0c;具有易读性和易写性的特点。 serverless.yml配置 在项目的根目录下增加…

Youtube新手运营——你需要的技巧与工具

对于有跨境意向的内容创作者或者品牌企业来说&#xff0c;YouTube是因其巨大的潜在受众群和商业价值成为最值得投入变现与营销计划的平台。 据统计&#xff0c;98% 的美国人每月访问 YouTube&#xff0c;近三分之二的人每天访问。但是&#xff0c;YouTube还远未达到过度饱和的…

Leetcode—53.最大子数组和【中等】

2023每日刷题&#xff08;三十四&#xff09; Leetcode—53.最大子数组和 前缀和算法思想 参考灵茶山艾府 实现代码 #define MAX(a, b) ((a > b) ? (a) : (b)) #define MIN(a, b) ((a < b) ? (a) : (b)) int maxSubArray(int* nums, int numsSize) {int ans INT_…

VMware 16 Pro 安装以及下载

1、下载地址&#xff1a; https://www.aliyundrive.com/s/nj3PSD4TN9G 2、安装文件 右击打开 下一步 密钥&#xff1a;ZF3R0-FHED2-M80TY-8QYGC-NPKYF 到此&#xff0c;安装完毕

postgreSQL如何快速查询大表数据量

文章目录 场景方案结果 场景 我有一个非常大的表&#xff0c;估计几百万或者几千万。 我开始使用了 select count(*) from my_table_javapub 方式&#xff0c;查询非常慢。 如何解决&#xff1f;&#xff1f;&#xff1f; 方案 如果你需要更快地获取表中的行数&#xff0c…

93.STL-系统内置仿函数

目录 算术仿函数 关系仿函数 逻辑仿函数 C 标准库中提供了一些内置的函数对象&#xff0c;也称为仿函数&#xff0c;它们通常位于 <functional> 头文件中。以下是一些常见的系统内置仿函数&#xff1a; 算术仿函数 功能描述&#xff1a; 实现四则运算其中negate是一元…

Java游戏之飞翔的小鸟

前言 飞翔的小鸟 小游戏 可以作为 java入门阶段的收尾作品 &#xff1b; 需要掌握 面向对象的使用以及了解 多线程&#xff0c;IO流&#xff0c;异常处理&#xff0c;一些java基础等相关知识。一 、游戏分析 1. 分析游戏逻辑 &#xff08;1&#xff09;先让窗口显示出来&#x…