• while,dowhile和for循环控制语句 程序员


        while,do-while和for控制着循环,有时将其划分为“反复语句”。除非用于控制反复的布尔表达式得到“假”的结果,否则语句会重复执行下去。while循环的格式如下:

    while(布尔表达式)

    语句

    在循环刚开始时,会计算一次“布尔表达式”的值。而对于后来每一次额外的循环,都会在开始前重新计算一次。

    下面这个简单的例子可产生随机数,直到符合特定的条件为止:

    //: WhileTest.java

    // Demonstrates the while loop

    public class WhileTest {

      public static void main(String[] args) {

        double r = 0;

        while(r < 0.99d) {

          r = Math.random();

          System.out.println(r);

        }

      }

    } ///:~

    它用到了Math库里的static(静态)方法random()。该方法的作用是产生0和1之间(包括0,但不包括1)的一个double值。while的条件表达式意思是说:“一直循环下去,直到数字等于或大于0.99”。由于它的随机性,每运行一次这个程序,都会获得大小不同的数字列表。

    3.2.4 do-while

    do-while的格式如下:

    do

    语句

    while(布尔表达式)

    while和do-while唯一的区别就是do-while肯定会至少执行一次;也就是说,至少会将其中的语句“过一遍”——即便表达式第一次便计算为false。而在while循环结构中,若条件第一次就为false,那么其中的语句根本不会执行。在实际应用中,while比do-while更常用一些。

    3.2.5 for

    for循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,进行某种形式的“步进”(Stepping)。for循环的形式如下:

    for(初始表达式; 布尔表达式; 步进)

    语句

    无论初始表达式,布尔表达式,还是步进,都可以置空。每次反复前,都要测试一下布尔表达式。若获得的结果是false,就会继续执行紧跟在for语句后面的那行代码。在每次循环的末尾,会计算一次步进。

    for循环通常用于执行“计数”任务:

    //: ListCharacters.java

    // Demonstrates "for" loop by listing

    // all the ASCII characters.

    public class ListCharacters {

      public static void main(String[] args) {

      for( char c = 0; c < 128; c++)

        if (c != 26 )  // ANSI Clear screen

          System.out.println(

            "value: " + (int)c +

            " character: " + c);

      }

    } ///:~

    注意变量c是在需要用到它的时候定义的——在for循环的控制表达式内部,而非在由起始花括号标记的代码块的最开头。c的作用域是由for控制的表达式。

    以于象C这样传统的程序化语言,要求所有变量都在一个块的开头定义。所以在编译器创建一个块的时候,它可以为那些变量分配空间。而在Java和C++中,则可在整个块的范围内分散变量声明,在真正需要的地方才加以定义。这样便可形成更自然的编码风格,也更易理解。

    可在for语句里定义多个变量,但它们必须具有同样的类型:

    for(int i = 0, j = 1;

        i < 10 && j != 11;

        i++, j++)

     /* body of for loop */;

    其中,for语句内的int定义同时覆盖了i和j。只有for循环才具备在控制表达式里定义变量的能力。对于其他任何条件或循环语句,都不可采用这种方法。

    1. 逗号运算符

    早在第1章,我们已提到了逗号运算符——注意不是逗号分隔符;后者用于分隔函数的不同自变量。Java里唯一用到逗号运算符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,我们可使用一系列由逗号分隔的语句。而且那些语句均会独立执行。前面的例子已运用了这种能力,下面则是另一个例子:

    //: CommaOperator.java

    public class CommaOperator {

      public static void main(String[] args) {

        for(int i = 1, j = i + 10; i < 5;

            i++, j = i * 2) {

          System.out.println("i= " + i + " j= " + j);

        }

      }

    } ///:~

    输出如下:

    i= 1 j= 11

    i= 2 j= 4

    i= 3 j= 6

    i= 4 j= 8

    大家可以看到,无论在初始化还是在步进部分,语句都是顺序执行的。此外,尽管初始化部分可设置任意数量的定义,但都属于同一类型。

  • 相关阅读:
    MyEclipse 8.5 M1注册码(转)
    非常经典有深度的电影英文台词(转)
    pb函数库 DataWindow常用函数(转)
    35岁以前把下面十件事做好(转)
    相识如茶,相思似酒(转)
    常用的SQL 脚本
    SQL Server Mobile 数据类型
    人生的35个好习惯 给人生的25条建议(转)
    sybase数据库相关
    模板
  • 原文地址:https://www.cnblogs.com/sallon/p/2520406.html
Copyright © 2020-2023  润新知