Java基础3-循环
循环结构
- 前面我们实现的功能中,都是顺序执行语句,但如果需要把一句话输出100次,再用顺序执行语句就是个体力活了。这时候我们可以使用循环结构,常见的循环体语句有for循环,while循环,do-while循环语句。
- 循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
for循环结构:for([初始表达式],[布尔表达式],[步进表达式]){循环体内执行语句}
- 初始化表达式可以为循环体定义一个新的变量并赋予一个初始值,一般是int变量。每次循环开始前,都会判断布尔表达式,如果为true则执行循环,如果为false则跳出并中断当前循环;一般布尔表达式中判断的变量即为初始化表达式中定义的变量。步进表达式是一种给布尔表达式中判断的变量进行变更的操作,一般是数值的增加或减少,以使循环语句可以被跳出并中断。每次循环结束时会执行一次步进表达式。循环代码体中,可以根据定义的int变量按序列去访问数据,如每次循环时按序列访问数组中的各个元素。
- 注:一般只初始化一次。
public class Test6 {public static void main(String[] args) {for (int i = 1; i < 5; i++) {System.out.println("for循环可以方便打印多行语句,i="+i);}}
}
运行结果:
for循环可以方便打印多行语句,i=1
for循环可以方便打印多行语句,i=2
for循环可以方便打印多行语句,i=3
for循环可以方便打印多行语句,i=4
- for循环在IDEA中的简写:数字.fori。一般地,数字是上限,自变量默认为i(可以更改),且是从0开始的。例如,在IDEA中输入:5.fori,点击回车键,出来的是:
for (int i = 0; i < 5; i++) {}
while循环结构:
while([布尔表达式]){//循环体内语句
}
- while语句每次会循环开始前会判断布尔表达式,值为true则会继续执行循环体内的语句,直到布尔表达式的值为false为止。
public class Test4 {public static void main(String[] args) {int i=1;while(i<5){System.out.println("目前i的值是"+i);i++;}}
}
结果:
目前i的值是1
目前i的值是2
目前i的值是3
目前i的值是4
do-while循环语句
do{//循环体内执行语句
}while([布尔表达式]);
- do-while语句与简单while语句类型不同的是:在第一次执行时,do-while中的语句至少会执行一次,即便布尔表达式第一次的值就为false;而在简单while语句中,当布尔表达式第一次的值为false时后面的语句就不会被执行。
public class Test5 {public static void main(String[] args) {int i=1;do{System.out.println("目前i的值是"+i);i++;}while (i < 5);}
}
运行结果:
目前i的值是1
目前i的值是2
目前i的值是3
目前i的值是4
跳转语句
continue 语句
- 当循环语句执行到某一次循环,满足了某种条件并希望不再执行后面未执行的语句,而是直接跳到下一次循环时,可以使用continue关键字。continue并不是直接跳出整个循环语句,而是跳出当前的这次循环进人到下一次的循环中,循环语句中原有的布尔表达式仍需要进行判断。
注:如果是多个循环嵌套,内层循环语句中的continue语句只能中断当前循环,并不能影响到外层循环语句。
public class Test3_Break {public static void main(String[] args) {for (int i = 0; i < 5; i++) {if(i==3){continue;//跳出当前循环语句,执行下一次。会输出i=4}System.out.println("此时i="+i);}}
}
运行结果:
此时i=0
此时i=1
此时i=2
此时i=4
Break语句
- Break关键字可以直接跳出当前循环。和continue不同的是,break语句是直接终止所有的循环语句,跳出循环体。
- 和continue一样,多个循环嵌套中,内层循环语句的break语句只能中断内部循环,并不能影响到外层循环语句。
public class Test3_Break {public static void main(String[] args) {for (int i = 0; i < 5; i++) {System.out.println("此时i="+i);if(i==3){break;//跳出循环语句,不会输出i=4}}}
}
运行结果:
此时i=0
此时i=1
此时i=2
此时i=3
Return语句
- return语句有两个用途,一个是定义一个方法的返回值(void方法也有一个隐式的return语句),另一个是直接跳出当前方法。所以,return语句也可以用来跳出当前所有的嵌套循环体。
- 实际编程中会有这样一种情况:
需要让程序跳出指定的循环语句。Java中提供了标签,一般定义在循环语句之前,用来标识当前循环。这相当于给当前循环起了一个名字以便它可以被找到。设置标签的原因是:如果存在多个循环语句嵌套,break和continue只能跳出当前循环,但是使用标签后,程序就可以中断循环并直接跳转到标签所在的地方。
public class Test2 {public static void main(String[] args) {for1:for (int i = 0; i < 5; i++) {System.out.println("此时,i="+i);for2:for (int j = 0; j < 4; j++) {System.out.print("此时,j="+j+"\t");if(j==3){break for1;//指定跳出外层循环}}}}
}
运行结果:
此时,i=0
此时,j=0 此时,j=1 此时,j=2 此时,j=3
无限循环
- 虽然循环语句给编程带来了方便,但若使用不当也会造成“无限噩梦”。循环语句中必须有条件判断语句,如果判断语句不存在或者判断语句永远为true,就会导致程序不能从循环的代码块中跳出并执行接下来的代码,这种场景就是无限循环(也称“死循环”)。
public class Test7 {public static void main(String[] args) {int i=1;while (i < 5){System.out.println("i的值是"+i);//漏掉了步进表达式,i的值永远是1}}
}
- 实际生活中,没有一台电脑是具有无限内存的,如果没有限制,无限循环中就会产生较多的对象,并且在没有得到及时处理的时候就会导致系统内存泄漏,严重时更会使系统崩溃。在开发中,要避免出现无限循环,就需要谨慎设计循环判断条件,必要时还需要在关键地方设置break语句强行跳出循环语句,这样其他正常逻辑的代码块才会被执行。
Java基础3-循环相关推荐
- Java基础3 -- 循环语句
小庄zzz:学习循环语句只需要抓住一点--代码执行顺序! 目录 一.Java基础2 -- 课后习题解析: 二.while循环 三.do while循环 四.for循环 五.跳转语句 六.多层循环 一. ...
- Java基础7 循环语句for、while、do-while
Java语言之中,循环语句有三种形式:while循环语句.do-while循环语句.for循环语句.这些语句的作用就是在一定的条件下,反复执行某段语句序列. while循环语句: 语句形式: whil ...
- 【Java基础】循环、嵌套、跳转控制break/continue、调试器、函数
文章目录 1.循环语句 1.1 while 1.1.1 格式 1.1.2 例子 1.2 do-while 1.2.1 格式 1.2.2 例子 1.3 for 1.3.1 格式 1.3.2 例子 1.4 ...
- Java基础Map循环遍历
import java.util.HashMap; import java.util.Iterator; import java.util.Map;/****@purpose:几种常见的Map循环*@ ...
- Java基础-for循环的不凡
前言 for几乎是每个语言的基础语句,熟练的使用for是每个程序员所必备的,然而你真的懂得for循环的不凡麽? 基础语句 for循环一般由4个表达式组成 for(表达式1;表达式2;表达式3){表达式 ...
- [java基础-4] 循环方法:方法声明.重载.递归
循环 死循环 for死循环:执行效率优先于while for (;;) {循环体语句; } while死循环:代码阅读性更强 while (true) {循环体语句; } 循环嵌套 百钱买百鸡: 花1 ...
- java基础--while循环实现A4纸折叠次数到珠穆朗玛峰高度
package com.lcn.day04;public class ForDemo11 {/*** 珠穆朗玛峰案例* 用一张厚度是0.01米的A4纸不停对折多少次厚度可以达到8848米??* * 分 ...
- java基础--while循环实现存钱问题案例
package com.lcn.day04;public class WhileDemo {/*** 存钱问题:* 一天存钱9元,每逢存钱天数是15的倍数则去花掉20元,问多少天能存500元*/pub ...
- java基础语法-循环switch语句
1.1 分支语句switch语句 switch (表达式) {case 1:语句体1;break;case 2:语句体2;break;...default:语句体n+1;break; } 执行流程: ...
- java循环基础知识_Java基础知识·循环语句
掘友们,大家好呀,我是宸道. 今天要讲解的是Java基础的循环语句,虽然很基础但还是希望大家看完,就当时复习知识了,基础越牢固越好,对我们是有很大帮助的. 相关推荐 循环语句可以在满足循环条件的情况下 ...
最新文章
- FD.io/VPP — NAT
- EasyUI Combogrid Bug
- Android Studio 插件开发详解三:翻译插件实战
- c++的构造函数初始化列表
- 写出漂亮代码的七种方法
- LeetCode(922)——按奇偶排序数组 II(JavaScript)
- Webstorm 下的Angular2.0开发之路
- ebs oracle pl sql开发_ORACLEERP开发基础之EBS开发基础
- 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;...
- paip.java 架构师之路以及java高级技术
- 我的Delphi开发经验谈(本人修改版) 收藏
- 鸿蒙OS可以装电脑吗,组装台式机可以装鸿蒙系统吗?
- 节假日判断工具(Java)
- 获得网易云音乐歌曲播放的url
- 图论——广度优先搜索
- 服务器硬盘整体ghost,GHOST备份操作系统与实现整块硬盘对拷数据还是很简单的...
- 任正非霸气回应:没有谷歌,华为也能成为世界第一!
- 计算机网络安全演讲,计算机网络安全及防护演讲稿讲解.ppt
- windows版本tcping参数详解
- 改造HP Z Turbo Drive 转接卡在DELL Optiplex 3020平台上使用