JAVA 入坑教程 | 章节六 循环结构体

简介: Java 循环结构程序里面的代码执行是依次顺序执行的,也就是说只能被执行一次。如果想要同样的操作执行多次,总部可能是复制几遍代码吧!所以,这里就需要使用到了循环结构。Java中主要有三种主要的循环结构:while 循环do…while 循环for 循环while 循环w...

Java 循环结构

程序里面的代码执行是依次顺序执行的,也就是说只能被执行一次。如果想要同样的操作执行多次,总部可能是复制几遍代码吧!所以,这里就需要使用到了循环结构。

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

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




while 循环

while 是最基本的循环,只要当while里面的条件成立的时候,while循环才会继续,语法如下 

while(true){
        //...
}

 

实例


public class Test {
   public static void main(String args[]) {
      int x = 15;
      while( x < 20 ) {
         System.out.print("X is : " + x );
         x++;
         System.out.println("");
      }
   }
}

以上实例编译运行结果如下: 
X is  : 15 
X is  : 16 
X is  : 17 
X is  : 18
X is  : 19 









do…while 循环

do...while循环和 while 循环是一样的,不同的是会先执行do的操作,再去判断while的条件是否成立,成立则继续执行do的语句,不成立的话则退出循环体。

即使不满足条件,执行语句也会先被执行一次。

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

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

实例

public class Test {
   public static void main(String args[]){
      int x = 10;
 
      do{
         System.out.print("值为 : " + x );
         x++;
         System.out.println("");
      }while( x < 20 );
   }
}

以上实例编译运行结果如下:

值为 : 10
值为 : 11
值为 : 12
值为 : 13
值为 : 14
值为 : 15
值为 : 16
值为 : 17
值为 : 18
值为 : 19 





for循环

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

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

for(初始化; 布尔表达式; 操作) {
        //...
        //代码语句
        //...
}



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

    • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
    • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
    • 执行一次循环后,更新循环控制变量。
    • 再次检测布尔表达式。循环执行上面的过程。

实例 

public class Test {
   public static void main(String args[]) {
 
      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

以上实例编译运行结果如下: 

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19




Java 增强 for 循环

Java5 引入了一种主要用于数组的增强型 for 循环。其实学过C#的同学应该知道,这个和foreach循环是一样的。


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

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

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

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

这个方法一般会用在对象输出的方式上。

实例 


public class Test {
   public static void main(String args[]){
      int [] numbers = {1, 2, 3, 4, 5};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.println("");
      String [] names ={"Karl", "DuJinYang", "JiMi", "Lucy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}


以上实例编译运行结果如下: 

10,20,30,40,50,
Karl,DuJinYang,JiMi,Lucy,





break 关键字

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

break 中文就是结束的意思,顾名思义,就是跳出最里层(当前涵盖)的循环,并且继续执行该循环下面的语句。

语法

break 的用法很简单,就是循环结构中的一条语句: 

break;

实例 

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         // x 等于 30 时跳出循环
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

以上实例编译运行结果如下:
10
20



continue 关键字

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

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

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

语法

  

continue;

实例  

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         if( x == 30 ) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

以上实例编译运行结果如下:

10
20
40
50






嵌套循环

do...while、while、for 循环都是可以相互嵌套的,这里不做过多的演示,大家可以自己去试验一下。



相关文章
|
12天前
|
存储 Java 编译器
Java基础教程(五千字带你快速入门!)(二)
Java基础教程(五千字带你快速入门!)(二)
|
12天前
|
存储 安全 Java
Java基础教程(五千字带你快速入门!)(一)
Java基础教程(五千字带你快速入门!)(一)
|
2天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
21 6
|
4天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
20 4
|
5天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
【7月更文挑战第8天】这篇教程介绍了如何使用Logback将Java应用的日志输出到文件中。首先,通过创建`logback.xml`配置文件,设置`FileAppender`来指定日志文件路径和格式。然后,提供了一个`RollingFileAppender`的例子,用于每日生成新的日志文件并保留一定天数的历史记录。文中包含配置文件的XML代码示例,并展示了控制台输出和生成的日志文件内容。教程最后提到了一些可能遇到的问题及解决建议。
15 0
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
|
9天前
|
XML 测试技术 数据格式
《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
【7月更文挑战第3天】TestNG教程展示了如何自定义日志记录。首先创建一个名为`TestLog`的测试类,包含3个测试方法,其中一个故意失败以展示日志。使用`Assert.assertTrue`和`Reporter.log`来记录信息。接着创建`CustomReporter`类,继承`TestListenerAdapter`,覆盖`onTestFailure`, `onTestSkipped`, 和 `onTestSuccess`,在这些方法中自定义日志输出。
27 6
|
6天前
|
Java 关系型数据库 测试技术
《手把手教你》系列基础篇(八十九)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-上篇(详解教程)
【7月更文挑战第7天】Apache Log4j2的安全漏洞促使考虑使用logback作为替代的日志框架。Logback由log4j创始人设计,提供更好的性能,更低的内存使用,并且能够自动重载配置文件。它分为logback-core、logback-classic(实现了SLF4J API)和logback-access(用于Servlet容器集成)三个模块。配置涉及Logger、Appender(定义日志输出目的地)和Layout(格式化日志)。
15 1
|
9天前
|
Java 测试技术 Apache
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
【7月更文挑战第4天】Apache Log4j 是一个广泛使用的 Java 日志框架,它允许开发者控制日志信息的输出目的地、格式和级别。Log4j 包含三个主要组件:Loggers(记录器)负责生成日志信息,Appenders(输出源)确定日志输出的位置(如控制台、文件、数据库等),而 Layouts(布局)则控制日志信息的格式。通过配置 Log4j,可以灵活地定制日志记录行为。
25 4
|
1天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
|
7天前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-下篇(详解教程)
【7月更文挑战第6天】本文介绍了如何使用Log4j2将日志输出到文件中,重点在于配置文件的结构和作用。配置文件包含两个主要部分:`appenders`和`loggers`。`appenders`定义了日志输出的目标,如控制台(Console)或其他文件,如RollingFile,设置输出格式和策略。`loggers`定义了日志记录器,通过`name`属性关联到特定的类或包,并通过`appender-ref`引用`appenders`来指定输出位置。`additivity`属性控制是否继承父logger的配置。
15 0