循环结构

  • 前面我们实现的功能中,都是顺序执行语句,但如果需要把一句话输出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-循环相关推荐

  1. Java基础3 -- 循环语句

    小庄zzz:学习循环语句只需要抓住一点--代码执行顺序! 目录 一.Java基础2 -- 课后习题解析: 二.while循环 三.do while循环 四.for循环 五.跳转语句 六.多层循环 一. ...

  2. Java基础7 循环语句for、while、do-while

    Java语言之中,循环语句有三种形式:while循环语句.do-while循环语句.for循环语句.这些语句的作用就是在一定的条件下,反复执行某段语句序列. while循环语句: 语句形式: whil ...

  3. 【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 ...

  4. Java基础Map循环遍历

    import java.util.HashMap; import java.util.Iterator; import java.util.Map;/****@purpose:几种常见的Map循环*@ ...

  5. Java基础-for循环的不凡

    前言 for几乎是每个语言的基础语句,熟练的使用for是每个程序员所必备的,然而你真的懂得for循环的不凡麽? 基础语句 for循环一般由4个表达式组成 for(表达式1;表达式2;表达式3){表达式 ...

  6. [java基础-4] 循环方法:方法声明.重载.递归

    循环 死循环 for死循环:执行效率优先于while for (;;) {循环体语句; } while死循环:代码阅读性更强 while (true) {循环体语句; } 循环嵌套 百钱买百鸡: 花1 ...

  7. java基础--while循环实现A4纸折叠次数到珠穆朗玛峰高度

    package com.lcn.day04;public class ForDemo11 {/*** 珠穆朗玛峰案例* 用一张厚度是0.01米的A4纸不停对折多少次厚度可以达到8848米??* * 分 ...

  8. java基础--while循环实现存钱问题案例

    package com.lcn.day04;public class WhileDemo {/*** 存钱问题:* 一天存钱9元,每逢存钱天数是15的倍数则去花掉20元,问多少天能存500元*/pub ...

  9. java基础语法-循环switch语句

    1.1 分支语句switch语句 switch (表达式) {case 1:语句体1;break;case 2:语句体2;break;...default:语句体n+1;break; } 执行流程: ...

  10. java循环基础知识_Java基础知识·循环语句

    掘友们,大家好呀,我是宸道. 今天要讲解的是Java基础的循环语句,虽然很基础但还是希望大家看完,就当时复习知识了,基础越牢固越好,对我们是有很大帮助的. 相关推荐 循环语句可以在满足循环条件的情况下 ...

最新文章

  1. FD.io/VPP — NAT
  2. EasyUI Combogrid Bug
  3. Android Studio 插件开发详解三:翻译插件实战
  4. c++的构造函数初始化列表
  5. 写出漂亮代码的七种方法
  6. LeetCode(922)——按奇偶排序数组 II(JavaScript)
  7. Webstorm 下的Angular2.0开发之路
  8. ebs oracle pl sql开发_ORACLEERP开发基础之EBS开发基础
  9. 编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;...
  10. paip.java 架构师之路以及java高级技术
  11. 我的Delphi开发经验谈(本人修改版) 收藏
  12. 鸿蒙OS可以装电脑吗,组装台式机可以装鸿蒙系统吗?
  13. 节假日判断工具(Java)
  14. 获得网易云音乐歌曲播放的url
  15. 图论——广度优先搜索
  16. 服务器硬盘整体ghost,GHOST备份操作系统与实现整块硬盘对拷数据还是很简单的...
  17. 任正非霸气回应:没有谷歌,华为也能成为世界第一!
  18. 计算机网络安全演讲,计算机网络安全及防护演讲稿讲解.ppt
  19. windows版本tcping参数详解
  20. 改造HP Z Turbo Drive 转接卡在DELL Optiplex 3020平台上使用

热门文章

  1. Docker 安装 nexus 私服
  2. Dbg2Excel_Word
  3. 开局一张图帮你充分理解哈希表(散列表)
  4. spring boot 项目重新搭建----------mvc配置:拦截器
  5. ServiceComb 课程
  6. SCOI-2017 游记 SCOI-2017 酱油记 SCOI-2017 没有滚粗资格的记
  7. 腾讯云服务器安装MySQL并设置远程登录
  8. 选择背光需要对比哪些因素呢?
  9. [面试]-- Hive面试问题
  10. 跨境电商还有发展前景吗?跨境电商应该怎么运营?