循环结构

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为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相关推荐

  1. for循环10000次花多长时间_我的三菱FX PLC学习之子程序调用与循环

    戳上方蓝字 "技成电工课堂" 关注我们哦! 上次,我们学习了程序流程转移中的条件跳转CJ,这次,我们接着向子程序调用CALL和FOR循环发起进攻吧! 显然,子程序调用CALL和FO ...

  2. 成为一个程序员要花多长时间

    理解专业程序员 成为一个程序员要花多长时间  http://book.csdn.net/ 2007-3-27 10:18:00 图书导读 当前章节:成为一个程序员要花多长时间 · 目录 · 前言 · ...

  3. SDN精华问答 | 为什么SDN要花这么长时间才被采用?

    SDN火热了好一阵子,无论运营商.政府企业.投资机构,一段时间,不知道SDN.不能甩几个SDN相关的名词术语,似乎都落后于时代了.今天,就来看看关于SDN的精华问答吧. 1 Q:SDN将会提供端到端的 ...

  4. PPT难做?花太长时间?收藏这4个网站,省时省力效率提升不止一倍

    很多人在进入职场后,通常第一个要做的是制作一份简洁有逻辑的PPT.所以如果在职场办公过程中不会使用PPT软件真的太吃亏了.很多人都常说PPT难做,花了很长时间.其实,是因为你不知道可以高效做到,只需收 ...

  5. 转本计算机要花多长时间学,江苏专转本成功经验,从江苏城市职业学院到南京工程学院...

    原标题:江苏专转本成功经验,从江苏城市职业学院到南京工程学院 学校:江苏城市职业学院 专业:会计 各位学弟学妹大家好: 我是17年转本考上南京工程学院的学长,今天我给大家分享一下我的专转本考试的心得体 ...

  6. ArcGIS 注册版本长时间无响应处理案例

    最近碰到一些客户注册版本长时间无响应的情况,现将解决步骤记录一下: 症状详细描述: 这些用户要注册的都是包含比较多图层的数据集,都是长时间无响应,几个小时,甚至10-20个小时. 如果此时杀掉Desk ...

  7. Axure 初学者必看:自学 Axure 需要花多长时间?

    如果你毫无基础,Axure 这种产品经理必会的一个软件工具,听起来一定很难学很复杂,但其实,Axure 是一个很适合自学的软件,基础操作很简单,入门简单,能够给大部分自学者信心.所以你如果问我,Axu ...

  8. python基础语法花多长时间_怎么自学python,大概要多久?

    2020年最后一天,还有一个多小时就是2021年了,先祝愿大家2021年都能够健康平安发大财! 自学Python的方法因人而异,而大概需要多久就更是各说各话了,但是自学Python的路径都是一致的:先 ...

  9. java 字符串转utc时间_java - 如何转换UTC日期字符串并删除Java中的T和Z? - 堆栈内存溢出...

    TL;博士 Instant.parse( "2018-05-23T23:18:31.000Z" ) // Parse this String in standard ISO 860 ...

最新文章

  1. R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体、文本字体、标识模块(key)的大小
  2. 何必分个孰优孰劣呢?!
  3. CSS——清除浮动的六种解决方案
  4. 【深度学习入门到精通系列】卷积和池化计算详解
  5. 数组的最长平台c语言,2010台湾省C语言版高级
  6. php设置cookie 域名,php如何设置cookie对整个域名有效?
  7. python装饰器_Python基础-装饰器
  8. 微信一键设置“姓氏头像”,学起来!
  9. Flex显示图片的常用方式
  10. 持久化存储与HTTP缓存
  11. 下载应用 ipa 包,不妨试试这款开源工具
  12. 星环大数据助银行数据仓库全面升级
  13. hadoop key和value 分隔符号设置
  14. 搜索引擎和网站中的高级搜索技巧
  15. linux开机启动项怎么设置bios,bios怎么设置开机启动项
  16. staring mysql_mysql启动错误:Starting MySQL.. ERROR! The server quit without updating PID file错误...
  17. 心形源码HTML,纯CSS实现心形加载动画(附源码)
  18. 一万字长文解读中国的消费经济
  19. 《Programming in Lua 3》读书笔记(十)
  20. 从Word中读取内容将word转换成txt

热门文章

  1. 【重磅】斯坦福李飞飞最新《注意力与Transformer》总结,84页ppt下载!
  2. 理解shared_ptrT
  3. DesignPattern(四)结构型模式(下)
  4. 一个云本地文件包含漏洞,影响世界一流公司
  5. (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
  6. IO流 带行号的缓冲区
  7. 【JavaScript】AJAX教程
  8. (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
  9. r型聚类典型指标_常用的聚类算法及聚类算法评价指标
  10. 奔图打印机显示未连接_手机连接奔图打印机,无法打印的解决方法