for循环10000次花多长时间_java循环经典案例学会它入行java
循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成
初始化语句:一条或者多条语句,这些语句完成一些初始化操作
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束
for循环
for循环语句格式
for(初始化语句;判断条件语句;控制条件语句) { 循环体语句;}
执行流程
执行初始化语句
执行判断条件语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
执行循环体语句
执行控制条件语句
回到B继续
注意事项
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
for语句的练习
代码示例:在控制台输出所有的”水仙花数”
/* 需求:在控制台输出所有的”水仙花数” 分析: 我们都不知道什么叫"水仙花数",你让我怎么做呢? 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 举例:153就是一个水仙花数。 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 A:三位数其实是告诉了我们范围。 B:通过for循环我们就可以实现获取每一个三位数 但是麻烦是如何获取这个三位数的个,十,百位上的数据 我们如何获取一个数据的个,十,百呢? 假设有个一个数据:153 ge: 153%10 = 3 shi: 153/10%10 = 5 bai:153/10/10%10 = 1 qian:x/10/10/10%10 wan: x/10/10/10/10%10 ... C:让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较 如果相同,就把该数据在控制台输出。*/ class ForDemo6 { public static void main(String[] args) { //三位数其实是告诉了我们范围。 for(int x=100; x<1000; x++) { int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; //让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较 if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) { //如果相同,就把该数据在控制台输出。 System.out.println(x); } } } }
运行结果:
代码示例:回文数
/* 练习: 请在控制台输出满足如下条件的五位数 个位等于万位 十位等于千位 个位+十位+千位+万位=百位 分析: A:五位数就告诉了我们范围。 B:分解每一个五位数的个,十,百,千,万位上的数据 C:按照要求进行判断即可*/ class ForDemo7 { public static void main(String[] args) { //五位数就告诉了我们范围。 for(int x=10000; x<100000; x++) { //分解每一个五位数的个,十,百,千,万位上的数据 int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; int qian = x/10/10/10%10; int wan = x/10/10/10/10%10; //按照要求进行判断即可 if((ge==wan) && (shi==qian) && (ge+shi+qian+wan==bai)) { System.out.println(x); } } } }
运行结果:
while循环语句格式
基本格式
while(判断条件语句) { 循环体语句;}
扩展格式
初始化语句;while(判断条件语句) { 循环体语句; 控制条件语句;}
循环结构(for循环和while循环的区别):
for循环语句和while循环语句可以等价转换,但还是有些小区别的
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:for循环适合针对一个范围判断进行操作,while循环适合判断次数不明确操作
/* 练习:用while循环实现 左边:求出1-100之和 右边:统计水仙花数有多少个 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; }*/ class WhileDemo2 { public static void main(String[] args) { //求出1-100之和 //for语句版本 int sum = 0; for(int x=1; x<=100; x++) { sum+=x; } System.out.println("sum:"+sum); System.out.println("--------"); //while语句版本 int sum2 = 0; int y=1; while(y<=100) { sum2+=y; y++; } System.out.println("sum2:"+sum2); System.out.println("--------"); } }
运行结果:
/* 需求:统计水仙花数有多少个*/ class WhileDemo3 { public static void main(String[] args) { //for循环版本 int count = 0; for(int x=100; x<1000; x++) { int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) { count++; } } System.out.println("count:"+count); System.out.println("------------"); //while循环版本 int count2 = 0; int y = 100; while(y<1000) { int ge = y%10; int shi = y/10%10; int bai = y/10/10%10; if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == y) { count2++; } y++; } System.out.println("count2:"+count2); } }
运行结果:
while循环和for循环的区别?
使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
其实还有一种场景的理解:
如果是一个范围的,用for循环非常明确。
如果是不明确要做多少次,用while循环较为合适。举例:吃葡萄。
class WhileDemo4 { public static void main(String[] args) { //for循环实现 for(int x=0; x<10; x++) { System.out.println("学习Java技术哪家强,中国北京传智播客"); } //这里不能在继续访问了 //System.out.println(x); //while循环实现 int y = 0; while(y<10) { System.out.println("学习Java技术哪家强,中国北京传智播客"); y++; } //这里是可以继续访问的 System.out.println(y); } }
do…while循环语句格式
基本格式
do { 循环体语句;}while((判断条件语句);
扩展格式
初始化语句;do { 循环体语句; 控制条件语句;} while((判断条件语句);
注意死循环:
A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
B:两种最简单的死循环格式
while(true){...}for(;;){...}
循环嵌套
代码示例:九九表
/* 需求:在控制台输出九九乘法表。 首先我们写出九九乘法表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 ... 1*9=9 2*9=18 3*9=27 ... 我们先把这个九九乘法表看出是这样的一个形状: * ** *** **** ***** ****** ******* ******** ********* 注意: '\x' x表示任意,这种做法叫转移字符。 '\t' tab键的位置 '\r' 回车 '\n' 换行*/ class ForForDemo3 { public static void main(String[] args) { for(int x=0; x<9; x++) { for(int y=0; y<=x; y++) { System.out.print("*"); } System.out.println(); } System.out.println("--------------"); //为了使用数据,我们从1开始 for(int x=1; x<=9; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } }
运行结果:
跳转控制语句
Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
break 中断、continue 继续、return 返回
break的使用场景
在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的
break的作用
跳出单层循环
跳出多层循环
带标签的跳出
格式:标签名: 循环语句
标签名要符合Java的命名规则
/* 控制跳转语句: break:中断 continue:继续 return:返回 break:中断的意思 使用场景: A:switch语句中 B:循环语句中。 (循环语句中加入了if判断的情况) 注意:离开上面的两个场景,无意义。 如何使用呢? A:跳出单层循环 B:跳出多层循环 要想实现这个效果,就必须知道一个东西。带标签的语句。 格式: 标签名: 语句*/ class BreakDemo { public static void main(String[] args) { //在 switch 或 loop 外部中断 //break; //跳出单层循环 for(int x=0; x<10; x++) { if(x == 3) { break; } System.out.println("HelloWorld"); } System.out.println("over"); System.out.println("-------------"); wc:for(int x=0; x<3; x++) { nc:for(int y=0; y<4; y++) { if(y == 2) { //break nc; break wc; } System.out.print("*"); } System.out.println(); } } }
continue的使用场景
在循环语句中
离开使用场景的存在是没有意义的
continue的作用
单层循环对比break,然后总结两个的区别
break 退出当前循环
continue 退出本次循环
也可以带标签的使用
/* continue:继续 使用场景: 循环中。离开此场景无意义。 测试,找到和break的区别: break:跳出单层循环 continue:跳出一次循环,进入下一次的执行 练习题: for(int x=1; x<=10; x++) { if(x%3==0) { //在此处填写代码 } System.out.println(“Java基础班”); } 我想在控制台输出2次:“Java基础班“ break; 我想在控制台输出7次:“Java基础班“ continue; 我想在控制台输出13次:“Java基础班“ System.out.println(“Java基础班”);*/ class ContinueDemo { public static void main(String[] args) { for(int x=0; x<10; x++) { if(x == 3) { //break; continue; } System.out.println(x); } } }
return关键字
不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解
/* return:返回 其实它的作用不是结束循环的,而是结束方法的。*/ class ReturnDemo { public static void main(String[] args) { for(int x=0; x<10; x++) { if(x == 2) { System.out.println("退出"); //break; //continue; return; } System.out.println(x); } System.out.println("over"); } }
更多好文
java精品入门-0基础第一篇
JDK、JRE、JVM的区别与联系
运算符-小学生都能学会的java基础
Java中的 "如果,那么" 怎么表达?
亲,需要你的“分享”和“在看”
IT入门 感谢关注 |
程序员题库→程序员用的单词表→练习地址:http://520mg.com/it/#/code |
for循环10000次花多长时间_java循环经典案例学会它入行java相关推荐
- for循环10000次花多长时间_我的三菱FX PLC学习之子程序调用与循环
戳上方蓝字 "技成电工课堂" 关注我们哦! 上次,我们学习了程序流程转移中的条件跳转CJ,这次,我们接着向子程序调用CALL和FOR循环发起进攻吧! 显然,子程序调用CALL和FO ...
- 成为一个程序员要花多长时间
理解专业程序员 成为一个程序员要花多长时间 http://book.csdn.net/ 2007-3-27 10:18:00 图书导读 当前章节:成为一个程序员要花多长时间 · 目录 · 前言 · ...
- SDN精华问答 | 为什么SDN要花这么长时间才被采用?
SDN火热了好一阵子,无论运营商.政府企业.投资机构,一段时间,不知道SDN.不能甩几个SDN相关的名词术语,似乎都落后于时代了.今天,就来看看关于SDN的精华问答吧. 1 Q:SDN将会提供端到端的 ...
- PPT难做?花太长时间?收藏这4个网站,省时省力效率提升不止一倍
很多人在进入职场后,通常第一个要做的是制作一份简洁有逻辑的PPT.所以如果在职场办公过程中不会使用PPT软件真的太吃亏了.很多人都常说PPT难做,花了很长时间.其实,是因为你不知道可以高效做到,只需收 ...
- 转本计算机要花多长时间学,江苏专转本成功经验,从江苏城市职业学院到南京工程学院...
原标题:江苏专转本成功经验,从江苏城市职业学院到南京工程学院 学校:江苏城市职业学院 专业:会计 各位学弟学妹大家好: 我是17年转本考上南京工程学院的学长,今天我给大家分享一下我的专转本考试的心得体 ...
- ArcGIS 注册版本长时间无响应处理案例
最近碰到一些客户注册版本长时间无响应的情况,现将解决步骤记录一下: 症状详细描述: 这些用户要注册的都是包含比较多图层的数据集,都是长时间无响应,几个小时,甚至10-20个小时. 如果此时杀掉Desk ...
- Axure 初学者必看:自学 Axure 需要花多长时间?
如果你毫无基础,Axure 这种产品经理必会的一个软件工具,听起来一定很难学很复杂,但其实,Axure 是一个很适合自学的软件,基础操作很简单,入门简单,能够给大部分自学者信心.所以你如果问我,Axu ...
- python基础语法花多长时间_怎么自学python,大概要多久?
2020年最后一天,还有一个多小时就是2021年了,先祝愿大家2021年都能够健康平安发大财! 自学Python的方法因人而异,而大概需要多久就更是各说各话了,但是自学Python的路径都是一致的:先 ...
- java 字符串转utc时间_java - 如何转换UTC日期字符串并删除Java中的T和Z? - 堆栈内存溢出...
TL;博士 Instant.parse( "2018-05-23T23:18:31.000Z" ) // Parse this String in standard ISO 860 ...
最新文章
- R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体、文本字体、标识模块(key)的大小
- 何必分个孰优孰劣呢?!
- CSS——清除浮动的六种解决方案
- 【深度学习入门到精通系列】卷积和池化计算详解
- 数组的最长平台c语言,2010台湾省C语言版高级
- php设置cookie 域名,php如何设置cookie对整个域名有效?
- python装饰器_Python基础-装饰器
- 微信一键设置“姓氏头像”,学起来!
- Flex显示图片的常用方式
- 持久化存储与HTTP缓存
- 下载应用 ipa 包,不妨试试这款开源工具
- 星环大数据助银行数据仓库全面升级
- hadoop key和value 分隔符号设置
- 搜索引擎和网站中的高级搜索技巧
- linux开机启动项怎么设置bios,bios怎么设置开机启动项
- staring mysql_mysql启动错误:Starting MySQL.. ERROR! The server quit without updating PID file错误...
- 心形源码HTML,纯CSS实现心形加载动画(附源码)
- 一万字长文解读中国的消费经济
- 《Programming in Lua 3》读书笔记(十)
- 从Word中读取内容将word转换成txt
热门文章
- 【重磅】斯坦福李飞飞最新《注意力与Transformer》总结,84页ppt下载!
- 理解shared_ptrT
- DesignPattern(四)结构型模式(下)
- 一个云本地文件包含漏洞,影响世界一流公司
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
- IO流 带行号的缓冲区
- 【JavaScript】AJAX教程
- (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
- r型聚类典型指标_常用的聚类算法及聚类算法评价指标
- 奔图打印机显示未连接_手机连接奔图打印机,无法打印的解决方法