• JAVA06-while循环,do while循环


    1、循环语句就是让计算机依据条件做循环计算,在条件满足时继续循环,条件不满足时,退出循环。

      while条件循环就是一种循环方式。

      格式:  while(条件){ //循环语句 }

     1 public class Main {
     2     public static void main(String[] args) {
     3         int sum = 0; // 累加的和,初始化为0
     4         int n = 1;
     5         while (n <= 100) { // 循环条件是n <= 100
     6             sum += n; // 把n累加到sum中
     7             n ++; // n自身加1
     8         }
     9         System.out.println(sum); // 5050
    10     }
    11 }

      要避免死循环,若while循环是个死循环,java的int类型有最大值,达到最大值后,再加就会变成负数,结果可能会意外退出while循环。

    2、练习:使用while循环计算从m到n的和

     1 public class Main {
     2     public static void main(String[] args) {
     3         int sum=0;
     4         int m=20;
     5         int n=100;
     6         while(m<=n) {
     7             sum+=m;
     8             m++;
     9         }
    10         System.out.println("m到n的和为:"+sum);
    11     }
    12 }

    3、do while循环

      while循环先判断循环条件,再执行循环,而do while循环则是先执行循环,在判断条件,条件满足就继续循环,不满足就退出循环。

      格式:do{

            //循环语句  

          }while(条件表达式);

     1 public class Main {
     2     public static void main(String[] args) {
     3         int sum = 0;
     4         int n = 1;
     5         do {
     6             sum = sum + n;
     7             n ++;
     8         } while (n <= 100);
     9         System.out.println(sum);
    10     }
    11 }
     1 //计算从m到n的和
     2 public class Main {
     3     public static void main(String[] args) {
     4         int sum = 0;
     5         int m = 20;
     6         int n = 100;
     7         // 使用do while计算M+...+N:
     8         do {
     9              sum+=m;
    10              m++;
    11          }while(m<=n);
    12         System.out.println(sum);
    13     }
    14 }

    4、for循环:使用计数器实现循环。for循环会先初始化计数器,,然后再每次循环前检测循环条件,在每次循环后更新计数器,计数器变量通常命名为i.

      格式:for(初始条件;循环检测条件;循环后更新计数器){  //执行语句;  }

    public class Main {
        public static void main(String[] args) {
            int sum = 0;
            for (int i=1; i<=100; i++) {
                sum = sum + i;
            }
            System.out.println(sum);
        }
    }
     1 //对一个整型数组的所有元素求和
     2 public class Main {
     3     public static void main(String[] args) {
     4         int[] ns = { 1, 4, 9, 16, 25 };
     5         int sum = 0;
     6         for (int i=0; i<ns.length; i++) {  
     7             System.out.println("i = " + i + ", ns[i] = " + ns[i]);
     8             sum = sum + ns[i];
     9         }
    10         System.out.println("sum = " + sum);
    11     }
    12 }

    5、for each循环:遍历数组时,可以访问每个元素的值。相比for循环,for each循环的变量n不再是计数器,而是直接对应到数组的每个元素。但是这个循环无法指定遍历顺序,也无法获取数组的索引。

    除了数组外,for each循环能遍历所有“可迭代”的数据类型,包括后面介绍的List、Map等。

      格式:for(type 元素:数组名){  //循环语句 }

    1 public class Main {
    2     public static void main(String[] args) {
    3         int[] ns = { 1, 4, 9, 16, 25 };
    4         for (int n : ns) {
    5             System.out.println(n);
    6         }
    7     }
    8 }

    6、练习

    1 //给定一个数组,用for循环倒序输出每一个元素
    2 public class Main {
    3     public static void main(String[] args) {
    4         int[] nums= {1,5,6,7,8,9,3};
    5         for(int i=nums.length-1;i>=0;i--) {
    6             System.out.print(nums[i]+" ");
    7         }
    8     }
    9 }
    // 利用 for each循环对数组每个元素求和
    public class Main {
        public static void main(String[] args) {
            int[] ns = { 1, 4, 9, 16, 25 };
            int sum = 0;
            for(int i:nums) {
                sum+=i;
                //i++;
            }
            System.out.println(sum); // 55
        }
    }

    6、break和continue 

      * break是跳出当前循环;  

      * continue是提前结束本次循环,直接进入下一循环

     1 public class Main {
     2     public static void main(String[] args) {
     3         int sum = 0;
     4         for (int i=1; i<=10; i++) {
     5             System.out.println("begin i = " + i);
     6             if (i % 2 == 0) {
     7                 continue; // continue语句会结束本次循环
     8             }
     9             sum = sum + i;
    10             System.out.println("end i = " + i);
    11         }
    12         System.out.println(sum); // 25
    13     }
    14 }
  • 相关阅读:
    Android Zygote介绍
    Android binder介绍(下)
    Android binder介绍(上)
    Android init介绍(下)
    Android init介绍(上)
    Android 网络服务介绍
    Linux代理服务器使用
    Linux ALSA介绍
    ZigBee MAC层(下)
    ZigBee MAC层(上)
  • 原文地址:https://www.cnblogs.com/Free-Ink/p/12643088.html
Copyright © 2020-2023  润新知