网站首页 > java教程 正文
概述
顺序结构的程序语句只能被执行一次。如果你想要让程序反复执行同一段代码,就需要使用循环结构。在循环语句中,这段反复被执行的语句叫做循环体,只有在满足一定循环条件的前提下,循环体才回反复执行。因此,关于循环流程,我们可以总结出以下几点:
1、必须要有循环条件,循环条件的结果是一个boolean类型的值
2、必须要有循环体,循环体可以是任何程序语句(包括循环)
3、必须要有结束条件,也就是说,程序需要在合适的时机将循环条件的结果改为false,否则循环将永远执行下去,这种永远执行的不会结束的循环叫做死循环,我们在编程的时候要尽量避免出现死循环。
在JAVA中,有三种方式可以实现循环:while语句、do...while语句和for语句。
while循环
在JAVA中,While循环是最为基本的一种循环控制流程,while语句的基本结构为:
while( 循环条件 ) { //循环体 //步进表达式 }
只有循环条件为true的时候,程序才会一直执行循环体。例如我们编写一个循环输出一定范围整数的程序:
while循环的循环体里面必须包含步进表达式,步进表达式的执行会影响循环条件的结果,当循环条件的结果是false的时候,while循环结束,while循环的执行流程图如下:
do...while循环
前面介绍了while循环,我们通过while循环的执行流程图可以看出,while循环开始的时候就要判断循环条件,如果循环条件的结果是false的话,程序就进入不了while循环,例如上面循环输入整数的程序中如果i初始化为9,那么程序将不会进入while循环,程序也就不会有任何输出:
有些情况下,我们希望循环至少执行一次,比如我们希望无论循环条件是否成立,都要先输出一次i的值,这个时候,我们需要用的do...while循环语句。do...while循环的语法结构如下:
do { //代码语句 } while (循环条件);
可以看出,do...while语句的循环条件在循环体后面,所以在程序判断循环条件是否成立之前,循环体就已经执行了一次。执行完一次之后,剩下的流程就和while循环完全一样了。所以do...while循环语句能够满足“无论循环条件是否成立,先输出一次i”的需求:
do...while语句的执行流程图如下:
for循环
坦白地说,在JAVA中,我们通过while循环和do...while就已经能够实现所有关于循环的需求,但是,java提供了一种在循环执行之前就已经确定了循环次数的语句,使得循环结构变得更加简单,这就是for循环,它的语法结构如下:
for(初始变量; 循环条件; 初始变量的增量或者减量) { //循环体 }
for循环的执行流程图和while循环一样:
通过for循环来实现前面“输出整数的程序”如下:
通过上面的程序,我们可以看出for循环比while循环的代码要简洁一些,这也是为什么for循环最为常用的原因,正因为for循环很常用,我们需要总结以下几点:
1、for循环的for关键字后面的括号里面是两个分号;隔开的三段内容,第一段是初始变量,第二段是循环条件,第三段是初始变量的增量或者减量。
2、for循环最先执行的是初始变量这部分,初始变量可以是一个或者多个,也可是时空语句。
3、然后,程序开始判断循环条件,如果为true,执行循环体,如果是false,循环终止。
4、每执行一次循环体之后,程序就开始执行一次对初始变量的增量或者减量,然后再次判断循环条件。
增强型for循环
JDK5进入了增强型for循环,增强型for循环主要用于更方便的操作数组或者集合。它的语法结构如下:
for(声明循环变量 : 目标数组或者集合) { // 代码句子 }
声明循环变量:声明一个局部变量用于逐个扫描目标数组或者集合里面的值,其类型必须和目标数组元素或者集合里面元素的类型一致。
例如,我们编写一个输出数组里面所有数据的程序:
需要补充的是,增强for循环的意义在于简化了程序的编写,我们编程的时候,希望降低问题的复杂性,而增强for循环正好能够消除循环中对变量的复杂分析过程,使得编程更加语义化,这一点尤为重要,需要大家不断去体会。
break 关键字和continue关键字
循环中可以通过break关键字来跳出循环,例如:
循环中可以通过continue关键字让程序立即跳转到下一次循环,例如:
问题:
JAVA中的循环语句内在灵活性,我们该如何在选择合适的循环语句完成特定的需求?
请各位给出自己的见解,如果想知道我的想法的话,请点赞,如果点赞多的话,我会在评论区写一下我的见解,或者专门谈一下这个话题。
猜你喜欢
- 2024-11-03 详细总结Java for循环的那些坑(java的for循环中是如何执行的)
- 2024-11-03 11.Java中的 while 循环(java的for循环语句)
- 2024-11-03 传说级大佬总结的几道Java循环练习题(适合新人)
- 2024-11-03 java中的while循环(javado while循环)
- 2024-11-03 Java流程控制语句之循环结构--初学者适用
- 2024-11-03 What?Java循环还能嵌套循环,说好的禁止套娃呢!「第12集」
- 2024-11-03 Golang for 循环(golangfor循环特性改变)
- 2024-11-03 JavaScript for 循环(javascriptfor循环数字累加)
- 2024-11-03 java循环的这4种遍历方式,有些16K的程序员可能是懵逼的
- 2024-11-03 用了那么久的 Java For 循环,你知道哪种方式效率最高吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)