Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

陷阱4 无休无止——while (condition); 以分号结尾

Java语言提供了三种循环语句,分别是for循环、while循环和do…while循环,其中do…while循环必须在while (condition)后以分号结尾,否则就会出错。而while循环则不能在while (condition)后以分号结尾,否则就会发生死循环。

示例:

说明

上面示例的目的是要计算1~100之间连续整数的和,由于在while (i <= 100)后误加了分号“; ”,在Java中分号是一条空语句,而循环条件i<=100始终成立,所以导致程序在while (i <= 100);处发生了死循环,始终执行这条空语句,所以导致下面的其他语句永远也不会执行,所以该示例并不会输出1~100之间连续整数的和5050。

提示

在while (condition)循环处误加了分号时,程序不会给出任何错误提示,由于在Java中分号是一条空语句,因此当程序执行到这里,由于循环条件成立,程序就会执行这条空语句,由于程序没有机会改变循环条件,程序会一直处于无反应的等待状态,而且没有任何提示,所以在使用while (condition)循环时一定要特别小心。

下面是正确计算1~100之间连续整数和的示例,该示例去掉了上一个示例中while (i<=100);处的分号,因此能够正确计算出1~100之间连续整数的和5050。

示例:

    int i = 1;                       // 声明循环变量
    int num = 0;                     // 声明进行累加求和的变量
    while (i<=100) {                 // 判断循环条件
        num = num + i;               // 进行累加求和
        i++;                         // 调整循环变量的值
    }
    System. out. println (num);         // 输出最终求出的和