Java三种循环语句的使用与区别

简介: 在Java中,常用的循环语句包括for循环、while循环和do...while循环。for循环适合已知循环次数的情况,其格式为for(初始化; 条件; 更新) { // 循环体 }。while循环则适合条件不确定的情况,先判断条件再执行,格式为while(条件) { // 循环体 }。do...while循环至少执行一次循环体,格式为do { // 循环体 } while(条件);。三者的主要区别在于执行顺序:for和while先判断条件再执行,而do...while先执行再判断。此外,for循环的控制变量在循环外不可用,而while循环的变量可在外部使用。

一、三种循环的语法格式及执行流程

1、for语句

格式:

   for(初始化语句;条件判断语句;条件控制语句) {

 循环体语句;

}


执行流程:

     1:执行初始化语句

2:执行条件判断语句,看其结果是true还是false

       如果是false,循环结束

       如果是true,继续执行

3:执行循环体语句

4:执行条件控制语句

5:回到2继续


示例:

public class aaa {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
        for(int i=1; i<=5; i++) {  // 判断条件并控制循环次数
            System.out.println("HelloWorld");
        }       
    }
}

2、while语句

基本格式:

   while(条件判断语句) {

 循环体语句;

}


完整格式:

初始化语句;

while(条件判断语句) {  

 循环体语句;

 条件控制语句;

}


执行流程:

     1:执行初始化语句

2:执行条件判断语句,看其结果是true还是false

       如果是false,循环结束

       如果是true,继续执行

3:执行循环体语句

4:执行条件控制语句

5:回到2继续


示例:

public class aaa {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"   
        //while循环实现
        int j = 1;
        while(j<=5) {   // 判断条件
            System.out.println("HelloWorld");
            j++;   // 控制循环次数
        }
    }
}

3、do…while语句

基本格式:

   do {

     循环体语句;

}while(条件判断语句);


完整格式:

初始化语句;

do {

 循环体语句;

 条件控制语句;

}while(条件判断语句);


执行流程:  

1:执行初始化语句

2:执行循环体语句

3:执行条件控制语句

4:执行条件判断语句,看其结果是true还是false

 如果是false,循环结束

 如果是true,继续执行

5:回到2继续


示例:

public class aaa {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
  //do...while循环实现
  int j = 1;
  do {
    System.out.println("HelloWorld");
    j++;  //控制循环次数
  }while(j<=5);  // 判断条件
    }
}


二、三种循环语句的区别

1、for循环和while循环,是先判断后执行。do…while循环是先执行后判断

public class aaa {
    public static void main(String[] args) {
        //for循环
      for(int i = 3; i<3; i++) {  // 先判断,条件不满足
        System.out.println("我爱Java");  // 后执行,不会执行循环体语句
      }
      System.out.println("--------");

      //while循环
      int j = 3;
      while(j<3) {   // 先判断,条件不满足
        System.out.println("我爱Java");  // 后执行,不会执行循环体语句
        j++;
      }
      System.out.println("--------");

      //do...while循环
      int k = 3;
      do {
        System.out.println("我爱Java");  //先执行,执行一次循环体语句
        k++;
      }while(k<3);   // 后判断,条件不满足,之后将不再执行程序
    }
}

注意:若条件不满足,for循环和while循环不会输出循环体语句;而do…while循环可以输出依次循环体语句,之后将不会再输出!



2、for循环和while循环的区别

for循环内部定义的变量,在循环之后就会从内存中释放掉,再想使用就找不到了,而while控制循环的变量是定义在循环外部,循环结束后可以继续使用。(也可以将for循环的初始化语句定义在循环外部)


public class DoWhileDemo {
    public static void main(String[] args) {
        //for循环
      for(int i = 1; i<3; i++) {   //循环变量i定义在for语句内部,循环结束就会从内存中释放掉
        System.out.println("我爱Java");
      }
      //System.out.println(i);   //无法输出i值
      System.out.println("--------");

      //while循环
      int j = 1;    //循环变量j定义在while语句外,循环结束后可以继续使用
      while(j<3) {
        System.out.println("我爱Java");
        j++;
      }
      System.out.println(j);  //可以输出j值
    }
}


3、死循环

三种循环语句死循环格式如下:

public class DoWhileDemo {
    public static void main(String[] args) {
     /*
      //for语句死循环格式
      for(;;) {
        System.out.println("for");
      }
      */

      /*
      //while语句死循环格式
      while(true) {
        System.out.println("while");
      }
      */

      //do...while语句死循环格式
      do {
        System.out.println("do...while");
      }while(true);
    }
}




目录
相关文章
|
21天前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
|
12天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
36 14
|
27天前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
8天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
13 1
|
18天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
39 8
|
1月前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
2月前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
51 6
|
2月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
2月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 1
|
2月前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
30 1