IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

Posted itxdl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT兄弟连 Java语法教程 流程控制语句 循环结构语句1相关的知识,希望对你有一定的参考价值。

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

1.初始化语句:一个或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行。

2.循环条件:这是一个boolean表达式,这个表达式能决定是否执行循环体。

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

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

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

 

1  for循环

for循环是相对简洁的循环语句,大部分情况下,for循环可以替代while循环、do-while循环。for循环的完整语法格式如下:

for(初始化语句;循环条件;迭代语句)

    循环体;

程序执行for循环时,先执行循环的初始化语句,初始化语句只在循环开始之前执行一次。每次执行循环体之前,先计算循环条件的值,如果循环条件返回true,则执行循环体,循环体执行结束后执行循环迭代语句。因此,对于for循环而言,循环条件总比循环体要多执行一次,因为最后一次执行循环条件返回false,将不再执行循环体。

值得注意的是,for循环的循环迭代语句没有与循环体放在一起,因此即使在执行循环体时遇到continue局域结束本次循环,循环迭代语句也一样会得到执行。

如果循环体只有一行语句,那么循环体的花括号可以省略:

for(初始化语句;循环条件;迭代语句) 循环体;

例:下面的程序演示了for循环的执行流程:

public class ForDemo

    public static void main(String[] args)

         for(int i = 0;i < 10; i++)

              System.out.println("i的值为:" + i);

        

   

编译并运行这个程序,控制台将显示如图10所示的信息。

技术图片

图10  ForDemo运行结果

 

在上面的循环语句中,for循环的初始化语句只有一个,循环条件也只是一个简单的boolean表达式,实际上,for循环允许同时制定多个初始化语句,循环条件也可以是一个包含逻辑运算符的表达式,如下所示:

public class ForDemo

    public static void main(String[] args)

         for(int b = 0,s = 0,p = 0;b < 10 && s< 4 && p < 10;p++)

              System.out.println(b++);

              System.out.println(++s + p);

        

   

上面的代码中初始化变量有三个,但是只能有一个声明语句,因此如果需要在初始化表达式中声明多个变量,那么这些变量应该具有相同的数据类型。

另外,for循环还有一些有趣的变体,是通过不对循环的某些部分进行定义来实现的。在Java中,for循环的所有或部分初始化,条件或迭代部分都可以为空,如下所示:

public class ForDemo

    public static void main(String[] args)

         int i;

         for(i = 0; i < 10;)

              System.out.println("i的值为:" + i);

              i++;

        

   

编译并运行这个程序,控制台将显示如如11所示的信息。

技术图片

图11  修改后的ForDemo运行结果

 

这里,for循环没有迭代表达式,而把循环控制变量i的增加放在了循环体的内部。这就意味着每次循环时都要测试i是否等于10,除此之外没有进一步的动作。当然,因为i的增加在循环体内部,所以循环还可以正常进行。

下面在看for循环的另一个变体,在下面的例子中,for循环的初始化部分也被移出了for循环:

public class ForDemo

    public static void main(String[] args)

         int i = 0;

         for( ; i < 10; )

              System.out.println("i的值为:" + i);

              i++;

        

   

重新编译并运行这个程序,控制台将显示如图12所示的信息。

在此版本中,在循环开始前就把i初始化了,没有把它作为for循环的一部分。一般情况下都是把循环控制变量的初始化放在for循环内部,但是当初始值是通过某个复杂过程得到的,而又不方便把这一过程放在for语句中时,可以把初始化放在循环之外。

技术图片

图12  再次修改后的ForDemo运行结果

 

for循环还有另外一种变体就是将循环的条件表达式设为空,可以生成无限循环,即永远不会停止的循环。例如下面的代码就是Java程序创建无限循环的常用方法:

for( ; ; )

    //...

该循环将永远运行下去,尽管有许多程序设计任务,如操作系统命令处理器,需要无限循环,但是多数“无限循环”都是具有特殊终止条件的循环。

在Java中,for循环(或其他循环)可以没有循环体,因为空语句在语法上是有效的。没有循环体的循环十分有用。例如,下面的程序就是用了没有循环体的循环,计算从1至5的数之和:

public class ForDemo2

    public static void main(String[] args)

         int sum = 0;

         for(int i = 1; i <= 5; sum += i++);

         System.out.println("1至5的和为:" + n);

   

编译并运行这个程序,控制台将显示如图13所示的信息。

注意,整个求和过程是在for语句中完成的,不需要循环体。这里要特别注意迭代表达式:

sum += i++;

技术图片

图13  ForDemo2运行结果

以上是关于IT兄弟连 Java语法教程 流程控制语句 循环结构语句1的主要内容,如果未能解决你的问题,请参考以下文章

IT兄弟连 Java语法教程 流程控制语句 控制循环结构1

IT兄弟连 Java语法教程 流程控制语句 循环结构语句2

IT兄弟连 Java语法教程 流程控制语句 循环结构语句4

IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

IT兄弟连 Java语法教程 流程控制语句 经典案例

IT兄弟连 Java语法教程 流程控制语句 分支结构语句1