循环结构

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环,否则循环一直执行下去,形成死循环。一个循环语句可能包含以下四个部分:

  1. 初始化语句(init_statement):一条或多条语句,这些语句用于完成一些初始化工
    作,初始化语句在循环体之前执行。
  2. 循环条件(test_expression):这一般是一个 boolean表达式,这个表达式能决定是否执行循环体。
  3. 循环体(body_statement):这个部分是循环体的主体,如果循环条件允许,这个
    代码块将被重复执行。
  4. 迭代语句(iteration_statement):这个部分在一次循环体执行结束后,对循环条
    件求值之前执行,通常用于控制循环条件的变量,使得循环再合适的时候结束。

以上四个部分知识一般性的分类,并不是每个循环中都很明确的分出这四个部分。

while循环语句

while 语句是循环语句,也是条件判断语句。它的循环重复执行方式,是利用一个条件
来控制是否要继续重复执行这个语句。具体的语法格式如下:

init_statement;// 初始化部分
while(test_expression ){
    body_statement;//这里包含步进(迭代部分)
}

while 循环每次执行循环体之前,先对 expression 进行求值,如果循环的条件是 true,则运行循环体部分。如果循环的条件是 false,那么就永远不会执行循环体。
注意:如果在 while( expression )后边加了一个分号,这样就会使程序执行一条空语句。

// 希望输出 1 到 10 ,这 10 个数字
int i = 1 ;  //1、控制循环是否继续的一个变量
while( i <= 10 ) {  //2、判断是否满足某个条件
    System.out.println( i ) ;
    i++ ;  //3、让 i 变化起来,朝着 "越来越不满足" 的方向走
} 

do..while循环语句

do…while 循环与 while 循环的区别在于: while 循环是先判断循环条件, 如果条件为真, 则执行循环体; 而do…while 循环则先执行循环体, 然后才判断循环条件, 如果循环条件为真, 则执行下一次循环, 否则中止循环。 do…while循环的语法格式如下:

init_statement;
do{
    body_statement; //这里包含 步进 (迭代部分)
} while (test_expression );//注意, 这里的分号不能省略! 否则编译通不过

do…while 循环的循环条件后边必须有一个分号, 这个分号表示循环结束。 如果test_expression 表达式的值如果是 false,那么循环体也会执行。
while 和 do…while 的区别: while 可能一次都不会执行, do…while 至少会执行一次循环体。

for循环

for 循环是更加简洁的循环语句, 可以和 while 循环、 do…while 循环互换。 基本格式如下:

for( init_statement; test_expression ; iteration_statement ){
    body_statement;
}

程序执行 for循环时,先执行循环的初始化语句 init_statement,初始化语句只在循环开始前执行一次。每次执行循环体之前,先计算 test_expression 循环条件的值,
如果循环条件返回true,则执行循环体,循环体执行结束之后执行循环迭代语句。因此,对于 for循环而言,循环条件总比循环体要多执行一次,因为最后一次执行循环条件返回 false,将不再执行循环体。 for 循环的循环迭代语句并没有与循环体放在一起,因此,即使执行循环体时遇到continue语句结束本次循环,循环迭代语句也一样会得到执行。
例子:

public class ForLoop1 {

    public static void main(String[] args) {
        
        /*
        int i = 5 ;
        while( i > 0 ) { 
            System.out.println( "i = " + i );
            i-- ;
        }
        */
        
        for( int i = 5 ; i > 0 ; i-- ){
            System.out.println( "i = " + i );
        }
        
    }

}

for循环明显知道循环了多少次,如果次数很确定的话,就是用for循环;如果不知道明确的次数的话,一般是用while循环。

public class ForLoop2 {
    public static void main(String[] args) {
        // 输出 十个 * 后再换行
        for( int i = 0 ; i < 10 ; i++ ){
            System.out.print( " * " );
        }
        System.out.println();       
    }
}
// 输出十个星,让十个星执行十次
public class ForLoop3 {

    public static void main(String[] args) {        
        for( int m = 0 ; m < 10 ; m++ ) {
            // 输出 十个 * 后再换行
            for( int i = 0 ; i < 10 ; i++ ){
                System.out.print( " * " );
            }
            System.out.println();
        }       
    }
}
public class ForLoop5 {

    public static void main(String[] args) {
        int c = 0 ;
        for( int m = 0 ; m < 10 ; m++ ) {
            // 输出 十个 * 后再换行
            for( int i = 0 ; i <= m ; i++ ){
                c++ ;
                System.out.print( "   (" + m + " , " + i + ")   " );
            }
            System.out.println();
        }       
        System.out.println( c );    
    }
}

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1