03筑基期——循环、嵌套循环、循环跳转、随机数(算法基础又篇)
文章目录
- 前言
- 一、 循环结构
- 1.循环的组成
- 2.循环语句for
- 3.while循环的组成
- 4.do-while循环的组成
- 5.循环语句其它知识
前言
循环的概念和组成【理解】
for循环语句【重点中的重点】
while循环语句【重点】
do while循环语句【了解】
一、 循环结构
重复性的执行某些固定的功能,当条件不成立时,结束循环
说白了: 条件成立执行操作,条件不成立停止操作
1.循环的组成
1.循环的组成(手写100遍HelloWorld案例): :
(1)【初始化表达式1】准备工作:笔墨伺候,最优先唯一执行一次的操作
(2)【循环条件2】条件判断:每次书写前,判断一下,要不要写
(3)【循环体3】循环所要进行的操作:手写一个HelloWorld案例
(4)【步进表达式4】扫尾的工作:每写一次HelloWorld,计数(+1)2.执行流程:
1,2(循环条件: true),3,4 --> 2(循环条件: true),3,4 --> … --> 直到2(循环条件: false),结束循3.循环的分类:
(1)for循环【重点中的重点】
(2)while循环【重点】
(3)do-while循环【了解】
2.循环语句for
1.for循环格式:
for(初始化表达式1;布尔表达式2;步进表达式4){
循环体3;
}
其它语句;2.执行流程:
1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 --> … --> 直到布尔表达式2(循环条件:false)结束for循环,执行for循环后面的其它语句
举个例子
需求:在控制台输出5次HelloWorld public class Demo01ForHello {public static void main(String[] args) {//count: 0,1,2,3,4 count<5:true 执行循环体//count: 5 count<5 ==> 5<5 ==> false 结束for循环for (int count = 0; count < 5; count++) {System.out.println("HelloWorld...."+count);}System.out.println("for...end...");//times: 1,2,3,4,5 times<=5: true 执行循环体//times: 6 times<=5 ==> 6<=5 ==> false 结束for循环for (int times = 1; times <= 5; times++) {System.out.println("HelloWorld...."+times);}System.out.println("for...end...");}
}
第二个例子水仙花数
需求:
在控制台输出所有的“水仙花数”解释:什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 333 + 555 + 111 = 27 + 125 + 1 = 153实现步骤:
1.使用for循环获取所有的三位数字,保存到循环变量num中
1.1计算循环变量num中当前三位数字的个位,十位,百位,分别保存到int变量ge(个位),shi(十位),bai(百位)中
1.2计算个位,十位,百位数字的立方和,保存到int变量sum中
1.3判断如果该三位数字的立方和sum 等于该三位数字num: 说明是水仙花数字
1.4打印该水仙花数字
代码如下(示例):
public class Demo02ForSXH {public static void main(String[] args) {//1.使用for循环获取所有的三位数字,保存到循环变量num中for (int num = 100; num <= 999; num++) {//System.out.println(num);//1.1计算循环变量num中当前三位数字的个位,十位,百位,分别保存到int变量ge(个位),shi(十位),bai(百位)中int ge = num%10;//个位int shi = num/10%10;//十位int bai = num/100%10;//百位//1.2计算个位,十位,百位数字的立方和,保存到int变量sum中int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;//1.3判断如果该三位数字的立方和sum 等于该三位数字num: 说明是水仙花数字if (sum == num) {//1.4打印该水仙花数字System.out.println(num);}}}
}
3.while循环的组成
1.while循环格式:
初始化表达式1;
while(布尔表达式2){
循环体3;
步进表达式4;
}
其它语句;2.执行流程:
1,2(循环条件: true),3,4 --> 2(循环条件: true),3,4 --> … --> 直到布尔表达式2(循环条件: false),结束while循环,直接执行while循环后面的其它代码
需求:
在控制台输出5次HelloWorld
代码如下(示例):
public class Demo01While {public static void main(String[] args) {//使用for循环for (int i = 1; i <= 5; i++) {System.out.println("HelloWorld...."+i);}System.out.println("for...end...");//使用while循环int j = 1;//初始化表达式1//j: 1,2,3,4,5 j<=5: true 执行循环体//j: 6 j<=5: false 结束while循环,执行后面的其它代码while(j<=5){//j<=5: 布尔表达式2System.out.println("HelloWorld...."+j);//循环体3j++;//步进表达式4}System.out.println("while....end....");}
}
我们来举第二个例子
需求:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
折纸(折叠后的厚度是原有厚度的2倍,而不是平方的关系):
原来: 0.1 paper
第一次: 0.12: 0.2 paper = paper * 2
第二次: 0.22: 0.4
第三次: 0.42: 0.8
第四次: 0.82: 1.6
…
实现步骤:
1.定义int变量count,初始值0,用来统计折叠纸张的次数
2.定义2个double变量zf(珠峰的高度)和paper(纸张的厚度),分别代表珠峰的高度和纸张的厚度,并根据题目需求进行初始化
3.使用while循环,完成折叠纸张达到珠峰的高度
3.1布尔表达式,循环条件: 只要折叠后的纸张高度 小于 珠峰的高度 paper < zf
3.2循环体: 折叠一次纸张,使得纸张的厚度变为原来的2被 paper = paper *2 或者 paper *= 2
3.3步进表达式: 计数器count的值增加1
4.while循环结束,打印count的值
public class Demo02WhileZF {public static void main(String[] args) {//1.定义int变量count,初始值0,用来统计折叠纸张的次数int count = 0;//2.定义2个double变量zf(珠峰的高度)和paper(纸张的厚度),分别代表珠峰的高度和纸张的厚度,并根据题目需求进行初始化double zf = 8844430,paper = 0.1;//3.使用while循环,完成折叠纸张达到珠峰的高度//3.1布尔表达式,循环条件: 只要折叠后的纸张高度 小于 珠峰的高度 paper < zfwhile (paper < zf) {//3.2循环体: 折叠一次纸张,使得纸张的厚度变为原来的2被 paper = paper *2 或者 paper *= 2paper *= 2;//paper = paper *2//3.3步进表达式: 计数器count的值增加1count++;//System.out.println("折叠第"+count+"次纸张的厚度: "+paper);}//4.while循环结束,打印count的值System.out.println("总共折叠次数: "+count);//System.out.println("折叠后纸张的最终厚度: "+paper);//1.34217728E7 ==> 13421772.8 8844430}
}
4.do-while循环的组成
1.do-while循环格式:
初始化表达式1;
do {
循环体3;
步进表达式4;
} while(布尔表达式2);
其它语句;2.执行流程:
1,3,4 --> 2(循环条件:true),3,4 --> 2(循环条件:true),3,4 --> … --> 直到布尔表达式2(循环条件:false)的结果为false,解释do-while循环,执行do-while后面的其它语句
代码如下(示例):
do-while循环练习:在控制台输出5次HelloWorld
/*do-while循环练习:在控制台输出5次HelloWorld*/
public class Demo01DoWhile {public static void main(String[] args) {int i = 1;//初始化表达式1do {System.out.println("HelloWorld...."+i);//循环体3i++;//步进表达式4} while(i<=5);//布尔表达式2 i: 6 6<=5: false 结束do-while循环,执行后面的其它语句System.out.println("do...while...end");}
}
5.循环语句其它知识
三种循环的区别总结
1.建议使用的顺序: for,while,do-while
2.循环次数确定的话,建议使用for,循环次数不确定建议使用while 【后面有使用场景】
循环次数不确定需要先写成死循环的格式【while好看】
3.do-while循环来讲的话,至少执行一次
4.while和do-while循环而言,循环结束后,初始化条件中定义的变量可以继续使用,
但是for循环的不能使用(在for循环内部定义初始化语句)
死循环
1.概念: 永不休止的循环
2.分类:
(1)for循环的死循环格式: for芬芬
for(;.;.){
…
}
(2)while循环的死循环格式 -------推荐使用
while(true){
…
}
(3)do-while循环的死循环格式
do {
…
} while(true);
public class DemoDeadLoop {public static void main(String[] args) {//for: 死循环/*for (int i = 3; i > 0; ) {System.out.println("Hello");}*//*for (; true; ) {System.out.println("Hello");}*///for: 死循环//不写布尔表达式2,默认值true//for循环()中的三个式子,可以都不写,但是必须保留两个分号/*for (; ;) {System.out.println("Hello");}*///while: 死循环/*int i = 3;while (i > 0) {System.out.println("Hello");}*//*while(true) {System.out.println("Hello");}*///do-while: 死循环do {System.out.println("Hello");} while(true);}
}
03筑基期——循环、嵌套循环、循环跳转、随机数(算法基础又篇)相关推荐
- 解决请求重定向无法跳转以及页面无限循环跳转
问题1:请求重定向无法跳转 原因:由于前台使用了一些框架,部分组件是利用的iframe来写页面的,导致后台对请求进行重定向时,前台页面无法跳转,而是在对镶嵌iframe中的页面进行跳转,无法实现在浏览 ...
- c语言 循环嵌套循环_C中的嵌套循环
c语言 循环嵌套循环 Here you will learn about nested loops in C. 在这里,您将了解C中的嵌套循环. Nesting is one of the most ...
- 放弃“for循环”,教你用这种算法 !(附代码)
原文标题:Why you should forget 'for-loop' for data science code and embrace vectorization 作者:Tirthajyoti ...
- java循环左一_java实现循环左移和右移的简单算法
java实现循环左移和右移的简单算法 byte a=112,用程序实现,将其循环左移三位和右移三位. 112的二进制原码:0111 0000 112循环左移3位后的二进制码:1000 0011 112 ...
- Java:实现 按概率生成随机数算法(附完整源码)
Java:实现 按概率生成随机数算法 /*** 从一组数据按照概率分布随机取出一个*/public static int getRandomNum(List<ModelNum> nums) ...
- 【经典题目】rand7()生成rand10()——随机数算法
随机数算法的转换 从小数向大数映射 这一类的算法主要分为两种,一种是从小数映射向大数,rand7()-->rand10().另外一种是从大数映射向小数rand10()-->rand7() ...
- php中循环跳过,php for循环的exit / break / continue /goto 停止、跳过循环、继续循环...
php 与 JavaScript 有很多相似的地方: for循环中 也有两个相同: 只是 php 比 js 多了一个 exit , 其他用法一样: for($i =1;$i<11;$i++){ ...
- java sleep 循环_while循环中的Thread.sleep()
我注意到NetBeans警告我在我的Java代码中使用while循环中的Thread.sleep(),所以我已经对这个主题进行了一些研究 . 主要问题似乎是性能问题,当计数器仍处于休眠状态时,你的状态 ...
- 03 switch循环语句
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) {case 1:语句体1;break;case 2:语句体2;break;...default:语句体n+1; ...
- mysql matlab for循环嵌套循环语句吗_C++: for_each 和 基于范围的for循环
普通的for循环 for_each函数模板 基于范围的for循环 普通用的像: for(int i = 0; i 这种的for循环就不说了, 下面主要说一下后两个,做个笔记. 以后用for循环可以考虑 ...
最新文章
- 今天才发现ff不支持navigate。
- web项目html引入css文件路径,详解Webpack和Webpack-simple中如何引入CSS文件_旧店_前端开发者...
- reactjs组件的props属性及其特点
- 解决eclipse中java代码注释变成乱码的问题
- sublime同步配置和插件
- java8并行流_Java 8:CompletableFuture与并行流
- idea抽取重复方法快捷键_IDEA 真牛逼,900行 quot;又臭又长quot; 的类重构,几分钟搞定...
- magento权限设置
- 如何搭建自己的第四方支付平台?
- 这一次带你彻底了解远程Cookie操作
- Storm并发度详解(转载)
- php请求403 forbidden,403 forbidden是什么意思
- DELL笔记本电脑问win10系统插入耳机没有反应,不像之前有弹窗
- WKWebView 设置 UserAgent
- PS证件照排版计算器
- autojs ui界面模板3
- 高屋建瓴-------谈观看朱老师视频有感
- SD卡扇区损坏引起了读文件失败
- android 模拟器按键映射
- [Python]调用adb抢双十一淘宝喵币
热门文章
- 一文带你熟悉JAVA IO这个看似很神秘的菇凉
- python#魔兽游戏#英雄联盟lol#地图
- 用计算机和电视机组成家庭影院,如何让我的电脑连上我的家庭影院?
- 计算机的自动播放功能有什么用,禁用自动播放功能的几种方法
- 大数据翻页_大数据分页实现与性能优化
- TP-LINK路由器如何设置DHCP
- 【JY】结构概念之(消能减震黏滞阻尼器)
- freecodecamp小练习——Falsy Bouncer过滤数组假值
- 设置多个dns_迅雷:要想下载速度快 请避免使用国外公共DNS服务
- ESP8266学习——HW Timer