之前的文章我们介绍了 Java 的运算符和表达式,本章我们来看一下 Java 的循环结构。

循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性进行。

循环的要素:

  - 循环变量的初始化

  - 循环条件(以循环变量为基础)

  - 循环变量的改变(向着循环的结束进行改变)

Java中有三种主要的循环结构:

  • while 循环
  • do…while 循环
  • for 循环

while 循环

while是最基本的循环,它的结构为:

  1. while(布尔表达式){
  2. //循环内容
  3. }

只要布尔表达式为 true,循环就会一直执行下去。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. int i = 0;
  4. while (i < 5) {
  5. System.out.print(i); // 0 1 2 3 4
  6. i++;
  7. }
  8. }
  9. }

do…while 循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

  1. do {
      //代码语句
  2. }while(布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. int i = 0;
  4. do {
  5. System.out.print(i); // 0 1 2 3 4
  6. i++;
  7. } while (i < 5);
  8. }
  9. }

for循环

虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for循环执行的次数是在执行前就确定的。语法格式如下:

  1. for(初始化; 布尔表达式; 更新) {
  2. //代码语句
  3. }

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。
  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. for (int i = 0; i < 5; i++) {
  4. System.out.print(i); // 0 1 2 3 4
  5. }
  6. }
  7. }

Java 增强 for 循环

Java5 引入了一种主要用于数组的增强型 for 循环。

Java 增强 for 循环语法格式如下:

  1. for(声明语句 : 表达式){
  2. //代码句子
  3. }

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. int[] list = {0, 1, 2, 3, 4};
  4. // for (String i : list) {
  5. // System.out.print(i); // 编译错误
  6. // }
  7. for (int i : list) {
  8. System.out.print(i); // 0 1 2 3 4
  9. }
  10. }
  11. }

break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. int[] list = {0, 1, 2, 3, 4};
  4. for (int i : list) {
  5. if (i == 2) {
  6. break;
  7. }
  8. System.out.print(i); // 0 1
  9. }
  10. }
  11. }

continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. int[] list = {0, 1, 2, 3, 4};
  4. for (int i : list) {
  5. if (i == 2) {
  6. continue;
  7. }
  8. System.out.print(i); // 0 1 3 4
  9. }
  10. }
  11. }

嵌套循环

循环中套循环,一般多行多列时使用,外层控制行,内层控制列。

执行过程:外层循环走一次,内层循环走所有次

建议:嵌套层次越少越好(一班最多为2层循环),次数再多说明设计有问题。

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. // 九九乘法表
  4. for (int i = 1; i <= 9; i++) {
  5. for (int j = 1; j <= i; j++) {
  6. System.out.print(i + "*" + j + "=" + j * i + "\t");
  7. }
  8. System.out.print("\n");
  9. }
  10. }
  11. }
  12. /**
  13. 1*1=1
  14. 2*1=2 2*2=4
  15. 3*1=3 3*2=6 3*3=9
  16. 4*1=4 4*2=8 4*3=12 4*4=16
  17. 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
  18. 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
  19. 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
  20. 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
  21. 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
  22. */

Java 从入门到进阶之路(四)的更多相关文章

  1. Java 从入门到进阶之路(十四)

    在之前的文章我们介绍了一下 Java 中的抽象类和抽象方法,本章我们来看一下 Java 中的接口. 在日常生活中,我们会接触到很多类似接口的问题,比如 USB 接口,我们在电脑上插鼠标,键盘,U盘的时 ...

  2. Java 从入门到进阶之路(二十四)

    在之前的文章我们介绍了一下 Java 中的  集合框架中的Collection 的泛型,本章我们来看一下 Java 集合框架中的Collection 的子接口 List. Collection 接口有 ...

  3. Java 从入门到进阶之路(二)

    之前的文章我们介绍了一下用 IDEA 编辑器创建一个 Java 项目并输出 HelloWorld,本章我们来看一下 Java 中的变量和基本数据类型. 在这之前我们先来看一下 Java 中的关键字,这 ...

  4. Java 从入门到进阶之路(二十)

    在之前的文章我们介绍了一下 Java 中的包装类,本章我们来看一下 Java 中的日期操作. 在我们日常编程中,日期使我们非常常用的一个操作,比如读写日期,输出日志等,那接下来我们就看一下 Java ...

  5. Java 从入门到进阶之路(二十九)

    在之前的文章我们已经可以对本地对文件和目录进行新建和删除等操作,接下来我们来对文件内对具体内容进行操作. 如下代码,我们实现了一个基本的文件写入: /** * java.io.RandomAccess ...

  6. Java 从入门到进阶之路(一)

    写在前面:从本片文章开始,将记录自己学习 Java 的点滴路程,目标定的并不是让自己成为一个 Java 高手,而是让自己多掌握一门语言,使自己的知识面更广一些,在学习 Java 的过程中如有不对的地方 ...

  7. Java 从入门到进阶之路(三)

    之前的文章我们介绍了 Java 中的变量和基本数据类型,本章我们来看一下 Java 的运算符和表达式. 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操 ...

  8. Java 从入门到进阶之路(五)

    之前的文章我们介绍了 Java 的循环结构,本章我们来看一下 Java 的数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. 数组 - 相同数据类型的元 ...

  9. Java 从入门到进阶之路(六)

    之前的文章我们介绍了 Java 的数组,本章我们来看一下 Java 的对象和类. Java 是一种面向对象语言,那什么是对象呢,对象在编程语言中属于一个很宽泛的概念,我们可以认为万事万物都是对象,每个 ...

随机推荐

  1. MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

    有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的.即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解. 但是 ...

  2. Java秒杀系统实战系列~构建SpringBoot多模块项目

    摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”! ...

  3. windos10专业版激活(可用)

    电脑提示Windows许可证即将到期,于是自己就在网上找了一些教程,但是并没有激活成功,反而由即将到期变为了通知状态,尝试了各种密钥都不行,也下载了激活工具如暴风激活工具,KMS都不管用,尝试了好多方 ...

  4. Python实现性能自动化测试竟然如此简单

    一.思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力 超负荷运行下的稳定性 系统瓶颈 自动化测试 使用程序代替手工 提升测试效率 性能自动化 使用代码模拟大批量用户 让用户并发请求 多页面多用 ...

  5. RobotFramework_1.简介和安装

    RobotFramework_1.简介与安装 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bot ...

  6. golang-http 请求---设置header与直接发

    背景 现在各种软件到处都是,写代码难免有时候需要http 调用其他的接口. 其实这个东西还挺常用,虽然很简单,但是写的时候 又忘,就像是提笔忘字,索性总结一下吧. 不需要设置header属性的http ...

  7. vue-cli中的跨域之proxytable

    为什么会有跨域? 浏览器有一个叫做同源策略的东西.同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互.这是一个用于隔离潜在恶意文件的重要安全机制. 同源策略规定了如果两个页面的协 ...

  8. alluxio源码解析-netty部分(2)

    netty简介 Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端.   netty作为alluxio中重要的通讯组件 在常见的客户端上传,下载中,都会有n ...

  9. LeetCode——540. Single Element in a Sorted Array

    题目:Given a sorted array consisting of only integers where every element appears twice except for one ...

  10. android ——多线程编程

    1.定义一个线程只需要新建一个类继承自Thread.然后重写run()方法,并在里面编写耗时逻辑即可: class MyThread extends Thread{ public void run() ...