对于编程语言来说,必然存在三种结构,分别为:顺序结构、分支结构和循环结构,当然,Java也不例外。

对于顺序结构来说,没啥好说的,就是代码从上到下依次执行,期间不存在任何的条件判断和跳转。代码编写顺序是什么样子,其执行顺序就是什么样子。所以,我主要介绍的是另外两种结构,也就是可以用来进行进行流程进行控制的结构,也即:分支结构和循环结构。

关于分支结构我已经在之前的文章介绍过,这里就不过多介绍,本篇只讲循环结构。

循环结构定义

所谓循环结构是指当符合判断条件时重复执行某一段代码,直到不符合判断条件时终止。对于循环结构来说,大致分为四个部分,分别是:初始化语句,循环条件,循环体(也就是需要循环执行的一段代码)、迭代语句或步进语句。

初始化语句:由一条或多条语句组成,在循环开始之前执行。

循环条件:就是一个布尔表达式,决定是否应该执行循环体

循环体:需要被循环执行的一段代码。

迭代语句:每一次循环执行完毕后,在执行下一次循环判断条件执行执行的语句,目的是控制循环条件中的变量,从而使得循环在合适的时机结束。

循环结构示例

在Java中的循环大致分为:while、do-while、for三种。

  • while

对于while循环来说,其格式为:

while (循环条件) {

执行代码

}

关于while的示例代码如下图所示:

其执行结果如下图所示:

其中,迭代语句作为循环体的一部分放在了循环体中。需要强调一点的是,循环判断条件必须存在结束的条件也就是指为false的情况,否则会导致死循环。下面的例子就是死循环的情况。

由于迭代语句为自减,而count会恒小于0,不管运行多久,循环条件的值会一直为true,从而导致死循环。

  • do-while

对于do-while循环来说,其格式为:

do {

执行代码

} while(循环条件);

需要说明的是,while括号后面的分号不可省略。关于do-while循环的示例代码如下图所示:

其执行结果如下图所示:

do-whille和while从结构上有些类似,实际上大多数情况下,使用while和do-while的区别不大。而且都要求必须存在使循环条件为false的情况来结束循环。但是从本质上看,两者还是有区别的。

对于while循环来说是先判断循环条件后执行循环体,而do-while循环则是先执行循环体再进行判断循环条件。这样,当首次判断循环条件的结果为false时,对于while来说不会执行循环代码,而do-while则会执行一次循环代码。如下图的例子所示:

执行结果如下图所示:

因此在选择while和do-while时,需要想清楚自己的需求。

  • for

for循环是Java中常用的循环,其格式为:

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

执行代码

}

关于for循环的示例代码如下图所示:

执行结果如下图所示:

相比于while循环和do-while循环,for循环看起来更加层次分明。因为for循环将初始化语句和迭代语句也囊括在了一个括号中,不像while循环和do-while循环那样,将初始化语句放在循环之前,迭代语句放在循环体中。当然,这只是感官上的区别。

实际上,在大多数情况下,for循环完全可以取代while循环和do-while循环。

另外需要强调一点的是,尽量避免在循环中修改循环变量的值。否则就可能出现死循环。下图就是一个在循环中修改循环变量,从而导致死循环的例子。

此外for循环还有多种省略写法,其中,初始化语句、循环条件、迭代语句甚至循环体都可以省略,最简洁的for循环为:

for(;;) {

}

这种写法在语法上是允许的。只不过由于没有循环条件,因此会一直执行循环体。虽然循环体中没有任何的语句,但是这依然是个死循环,导致程序无法跳出循环继续向下执行。当然,这种玩法也只有在各种面试题中见到,日常开发中很少见。

以上所讲得都是单层循环,实际上循环是可以多层嵌套的。比如下图所示:

执行结果如下图所示:

循环结构的控制

所谓循环的结构的控制就是在适合的时候中断循环或跳过本次循环的剩余的语句开始下一次循环。在Java中,通常用break来中断循环结构,用continue来跳过本次循环中剩余的语句并开始下一次循环。

  • break中断循环

对于break来说,不论是哪种循环,只要执行到break便会中断整个循环,其示例代码如下图所示:

其执行结果如下图所示:

本例子是在i为5的时候使用break来中断循环,如果没有这步操作,本该打印从0到9,但是有了之后在i为5的时候便通过break终止了循环的执行,因此只打印出了从0到4。

  • continue跳过本次循环

与break类似,continue也是适用于任何的循环结构,只不过continue只是跳过本次循环中continue之后的语句立即开始下一次循环罢了。其示例代码如下图所示:

其执行结果如下图所示:

由于在i为5的时候使用了continue来调用continue之后的语句,从而导致打印语句被跳过,因此打印出了除5之外的从0到9的数字。

  • 使用标签来辅助break和continue

此外,Java中还存在使用标签来辅助break和continue的使用。因为,不论是break还是continue都只会中断或跳过当前层的循环。若循环为嵌套循环,却像在内层循环中断或跳过外层循环,就可以通过标签的辅助来实现。

Java中定义标签的语法是“标签名:”。虽然标签名可以在很多位置定义,但是只有放在循环前时才有意义。下面我分别给出break和continue使用标签的例子。

break使用标签的例子如下图所示:

其执行结果如下图所示:

continue使用标签的例子如下图所示:

执行结果如下图所示:

access 跳过一次for循环_Java中的循环结构相关推荐

  1. java结束内层循环_java中结束循环的标志break和continue语句

    break语句:用于结束整个循环,只能用于switch 和循环语句中. 当break使用在嵌套的循环中时,结束的是其所在的循环(即内循环) 那么怎样才能使其结束外层循环呢?这时就要使用跳转语句标记(标 ...

  2. java 结束循环_java中结束循环的方法

    java中结束循环的方法 发布时间:2020-06-25 11:31:06 来源:亿速云 阅读:180 作者:Leah 这篇文章将为大家详细讲解有关java中结束循环的方法,小编觉得挺实用的,因此分享 ...

  3. java选择循环_java选择和循环结构

    选择和循环结构 顺序 (1)按照程序的流程从上而下执行流程. 选择结构 If 概念 对条件判断[一个条件的结果:true:false] 执行判断结果,所想要处理的代码 如果(true){ System ...

  4. java中的循环结构_Java中的循环结构进阶

    循环结构进阶 学习本章用到的单词 triangle:三角形 circle:圆形 diamond:钻石 password:密码 row:行.排列 二重循环结构 简单的说:二重循环就是一个循环体内又包含另 ...

  5. eclipse debug跳出for循环_Java Grammar:循环

    循环 老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制: 根据是否知道循环的次数可以为分为while循环,do-while ...

  6. java中break内外循环_java 中break如何跳出外部循环

    学习就是为了不断的看到自己的知识盲点,然后改正,以前知道如何使用break来跳出循环,突然学习到可以用break跳出外部的循环(以前只知道怎么调本次的循环). 上正题代码如下: break跳出本次循环 ...

  7. java中的语句有哪些_java中的循环语句有哪些

    Java中有三种主要的循环结构: while 循环 do-while 循环 for 循环 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. 一.while循环 语 ...

  8. java for循环 写法_java中for循环的6种写法

    packageForLoop;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/*** java中for ...

  9. continue语句可以用在switch语句和3种循环语句中_Java中的循环

    循环是Java中应用最为广泛的一个知识点,所以也是很需要掌握的. 其中循环包括:1.循环控制.2.循环嵌套.3.break与continue.4.死循环 一.循环控制 1.for循环 for循环结构: ...

  10. java循环语句有哪三类_java中的循环语句有哪些

    Java中有三种主要的循环结构: while 循环 do-while 循环 for 循环 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. 一.while循环 语 ...

最新文章

  1. 2017-2018-2 20165211 实验五《网络编程与安全》实验报告
  2. TextView 显示内容时出现 ArrayIndexOutOfBoundsException 的解决方法(Android 4.1)
  3. kali下生成web端后门
  4. 嵌入式C语言基础(二)
  5. heroku_简单的Twitter:Heroku上的Play框架,AJAX,CRUD
  6. 机器学习数据包之numpy
  7. easyuefi无法安装只能在基于_SOLIDWORKS2018安装时VC2015安装失败的解决方法
  8. 短小精悍-机器学习核心概念、模型、基础知识点简明手册-免费分享
  9. nutz配置druid监控
  10. Unity 基础 之 Camera摄像机属性介绍
  11. 公差带与配合 配合选择基础
  12. 正项级数收敛性判别方法
  13. BLE_BQB Test_Modulation Characteristics, LE Coded (S=8)_RF-PHY/TRM/BV-13-C
  14. 静态html无法进行post请求,静态页接收post请求
  15. Word文档如何从中间某一页开始设置页码
  16. 百度地图开发 之 坑中坑
  17. Linux基础 之 curl 命令
  18. 被Win10自带杀毒软件自动误删除的exe从这里找
  19. 企业文化在企业管理中的作用
  20. 无符号数相减问题 C语言

热门文章

  1. 13.docker exec
  2. 20. 静态区块(Static Blocks)
  3. 100. SimpleXML
  4. oracle 10g perl,perl中访问oracle10g入门
  5. 沙绿色background-color:#e5eecc; border:solid 1px #c3c3c3;
  6. 2018/3/27 省选模拟赛 140分
  7. HDU.2111 Saving HDU(贪心)
  8. 线程、同步异步、队列
  9. CodeForces615A-Bulbs-模拟
  10. 第一个scrum会议