java基础知识:循环语句

来源:互联网 发布:厦门国税网络发票查询 编辑:程序博客网 时间:2024/05/12 02:47
 

2011-11-17

循环语句

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

初始化语句(init_statements):一条或多条语句,用于完成一些初始化工作。初始化语句在循环开始之前执行。

循环条件(test_expression):这是一个boolean表达式,用于决定是否执行循环体。

循环体(body_statements):这部分是循环的主题,如果循环条件允许,这个代码块将被重复执行如果该代码块只有一行语句,则其花括号是可以省略的。

迭代语句(iteration_statements):这部分在一次循环体执行结束后,对循环条件求值之前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。

上面四个部分只是一般分类,并不是每个循环中都非常清晰地分出了上面的4个成分

While 循环的语法格式如下:

[init_statements]

While(test_expression){

       Statements;

       [iteration_statements]

}

While循环每次执行循环体之前,先对test_expression循环条件求职,如果循环条件为true,则运行循环体部分。从上缅甸额语法费事来看,迭代语句iteration_satements总是位于循环体的最后,因此只有当循环体能成功执行完成时,while循环体才会执行iteration_statements迭代语句。

从这个意义上看,whileuxnhuan也可被当成条件语句——如果test_expression条件一开始就位false,则循环体部分将永远不会获得执行。

Eg:

public class TestWhile{

       public static void main(String args[]){

              //循环的初始化条件

              int i=0;

              //当i小于10时,执行循环体

              while(i<10){

                     System.out.println(i+"\t");

                     //迭代语句

                     i++;

              }

              System.out.println("\n循环结束!");

       }

}

如果while循环的循环体部分和迭代语句合并在一起,且只有一行代码,则可以省略while循环后的花括号。但这种省略括号的做法,可能会降低程序的可读性。

是哟和那个while训话时,一定要保证循环条件有变成false的时候,否则这个循环将成为一个死循环,永远无法结束。例如:

Int i=0;

Wehile(i<10){

       System.out.println(“不停地死循环+i”);

       i--;  

}

System.out.println(“永远无法跳出的循环体!”);

在上面的代码i值越来越小,因此i的值永远小于10,i<10循环条件一直为true,从而导致这个循环永远无法结束。

除此之外,对于许多初学者而言,使用while循环时还有一个陷阱——while循环的循环条件后紧跟一个分号。如果有如下代码:

Int i=0;

//while后紧跟一个分号,表明循环体时一个分号(空语句)

While(i<10)

//下面的代码块与while循环没有任何关系

{

       System.out.println(“--------”+i);

       I++;

}

乍一看,该代码片段没有任何问题,自习看一下,不难发现while循环的训话条件表达式后紧跟了一个分号。在java程序中,一个单独的分号标识一条空语句,不做任何事情的空语句,这意味着这个while循环的循环体时空语句。空语句作为循环体也不是最大的问问题,问题是当java反复执行这个循环体时,循环条件的返回值没有任何改变,这就成了一个死循环。分号后面的代码块则与while循环没有任何关系。

2do……while循环语句

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

[init_statements]

Do{

       Statements;

       [iteration_statements]

}while(test_expression);

与while循环不同的是,do…..while循环的循环条件后必须有一个分号,这个分号表明循环结束。

Eg: public class TestDoWhile{

       public static void main(String args[]){

              //定义变量i

              int i=1;

              //执行 do  while循环

              do{

                     System.out.println(i+"\t");

                     //循环迭代语句

                     i++;

              }while(i<10);

                     System.out.println("\n循环结束!");

             

       }

}即使test_expression循环条件的值开始就是假,do….while循环也会执行循环体。因此,do….while循环的循环体至少执行一次。

//定义变量j

Int j=20;

//执行do…while循环

Do

       //这行代码把循环体和迭代部分合并成了一行代码

              System.out.println(j++);

While(j<10);

System.out.println(“循环结束!”);

从上面程序来看,虽然开始j的值就是20,j<10表达式返回false,但do…while循环还是会吧循环体执行那个一次。

 

原创粉丝点击