3.29Java流程控制语句之循环结构

3.29Java流程控制语句之循环结构

循环结构,"如果...,则再继续..."的逻辑

分类:

  • 当型

  • 直到型---用的比较少


当型

  • while循环

  • for循环

while循环

语法结构:

while(布尔表达式){
   循环体;
}
/*
特点:
在while里面判断,判断完以后再回到开头在判断(没有break的情况下)
*/
if(布尔表达式){
   内容;
}
/*
if里面是判断,判断完继续往下执行
*/

流程如图:

实例:

/**
* 测试while循环
* @author Lucifer
*/
public class TestWhile {
   public static void main(String arguments[]){
       //计算1+2+3+4+..+100的累加的和(高斯小学就做出来了)
       int i = 0;
       int sum = 0;
       while(i<=100){
           sum = sum+i; //第一次i是0进入到结构体,算好赋值给sum
           i++;
//           break; //如果在这里加了break以后再第一次执行完结构体就会跳出然后到输出语句
      }
       /*
       一个while循环的组成部分:
       1.while外层初始化。---在while循环外层定义i的值
       2.条件判断。---在while后进行描述
       3.执行循环体。---执行结构体里面的内容,在结构题内写出步径迭代
       4.goto第二步
       执行过程:
       1.先执行初始化。---初始化语句
       2.执行完初始化之后做判断。---条件判断
       3.判断完之后执行循环体。---结构体的内容
       4.执行完之后执行步径迭代。
       5.goto第二步继续进行条件判断
        */

       System.out.println(sum);

       int j = 0;
       int nsum = 0;
       do{
           nsum += j;
           j++;
      }while(j<=100);

       System.out.println(nsum);

  }
}

分析:

  1. while上面给i定义了初始值

  2. while里面写了布尔表达式(这里没有定义i的变化趋势)

  3. 在while结构体里面定义了sum的变化和while的变化

特点:

  • 先判断再执行

  • 判断不为true也不会执行

因为while循环的特点是先判断布尔表达式然后执行结构体,执行完毕后回到布尔表达式去判断true和false选择是否执行结构体的模式。

while、if构成了所有系统的核心


do...while循环

语法结构:

do{
   内容
}while(布尔表达式);

特点:

  • 无论开始是true还是false,先执行一遍,在进行判断

  • 一开始一定会先跑一遍,不管条件符不符合。

实例:

/**
* 测试while循环
* @author Lucifer
*/
public class TestWhile {
   public static void main(String arguments[]){
       //计算1+2+3+4+..+100的累加的和(高斯小学就做出来了)
       int i = 0;
       int sum = 0;
       while(i<=100){
           sum = sum+i; //第一次i是0进入到结构体,算好赋值给sum
           i++;
//           break; //如果在这里加了break以后再第一次执行完结构体就会跳出然后到输出语句
      }

       System.out.println(sum);

       int j = 0;
       int nsum = 0;
       do{
           nsum += j;
           j++;
      }while(j<=100);

       System.out.println(nsum);

  }
}
for循环---写代码当中最常用的一种方式,比while还常用

特点:

  • 支持迭代的一种通用结构,是最有效、最灵活的循环结构

  • 结构简单、清晰、容易些

实例:

/**
* 测试for循环
* @author Lucifer
*/
public class TestFor {
   public static void main(String arguments[]){
       int sum = 0;
       for(int i = 0; i<=100; i++){
           sum = sum + i;
      }
       /*
       一个for循环的组成部分:
       1.初始化语句。初始化变量的值。
       2.条件判断。
       3.步径迭代
       执行过程:
       1.先执行初始化。---初始化语句
       2.执行完初始化之后做判断。---条件判断
       3.判断完之后执行循环体。---结构体的内容
       4.执行完之后执行步径迭代。
       5.goto第二步继续进行条件判断
        */

       System.out.println(sum);

  }
}
for循环与while循环的对比
  • 执行步骤是一样的

  • while循环把执行步骤需要用到的初始化、条件判断、步径迭代分开来写。---初始化写在while外层,条件判断写在while里面,步径迭代写在while结构体里

  • for循环把执行步骤需要用到的初始化、条件判断、步径迭代放在一起,便于管理

实例:---for循环的死循环和while循环的死循环的区别


       //无限循环
       for( ; ; ){
           System.out.println("Lucifer");
      }
       /*
       注意for循环表示true的方式是把初始化、条件判断、步径迭代都不写出
       while(true) = for( ; ; )
        */

for循环的变量作用域

  • for循环的初始化变量仅限于for的语句块当中,类似于语句块变量

  • while循环的初始化值相当于局部变量,在该方法中有效。


嵌套循环

定义:

在一个循环语句内部再嵌套一个或多个循环称为嵌套循环(可以嵌套for循环也可以嵌套while循环)

实例:

/**
* This is a practice about how to print multiplication table
* @author Lucifer
*/
public class TestForWhile_Practice_MultiplicationTable {
   public static void main(String[] args) {
       for (int i = 1; i <= 9; i++) {
           for (int j = 1; j <= i; j++) {
               System.out.print(j + "*" + i + "=" + (i * j) + "\t");
          }
           System.out.println();
      }

       int a = 1;
       while( a<=9 ){
           int b = 1;
           while(b <= a){
               System.out.print(b + "*" + a + "=" + (a*b) + "\t");
//               System.out.println();
               b++;
          }
           System.out.println(); //一行一行的打印
           a++;
      }
  }
}

关键点:

嵌套循环的并不难理解,关键是牢记每一种循环他语句的执行顺序。

循环无非三个条件,循环初始值、条件判断、步径迭代。牢记三种循环他的执行顺序那么嵌套多少层循环都能够解决。

  • for循环再for后括号内分别定义循环初始值、条件判断、步径迭代。执行步骤:

    • 初始化初始值

    • 进行条件判断

    • 运行结构体内语句

    • 进行步径迭代

    • 进行条件判断

      • 符合条件回到第三步开始继续循环执行

      • 不符合条件跳出for循环执行下一步

  • while循环的循环初始值是一个局部变量,如果再while循环或者for循环里面嵌套while循环那么它的初始值只能在内层while循环里面生效

    • 实例:

    • public class WhileCirculation{
         /**
         * Print a multiplication table
         * @author Lucifer
         */
         public static void main(String arguments[]){
             int i = 1;
             while( i <= 9){
                 int j = 1; //这就是内层while循环的初始值,他只会在内层while代码块里面生效。如果放在外层那么则视为局部变量,在方法里面生效
                 while( j <= i ){
                     System.out.print(j + "*" + i + "=" + (i*j) + "\t");
                     j++;
                }
                 System.out.println();
                 
                 i++;
            }
        }
      }
  • 执行步骤:

    • 在while外层初始化初始值

    • 进行条件判断

    • 运行结构体

    • 结构体内进行步径迭代

    • 进行条件判断

      • 符合条件回到第三步继续执行

      • 不符合条件开始执行下一步

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14595534.html