Java学习笔记--循环总结

关键字break和continue

除了在switch语句中使用break,还可以在一个循环中使用break立即终止该循环.

循环语句有三类: while循环, do-while循环和for循环.

循环中需要重复执行的语句所构成的整体称为循环体.

循环体执行一次称为循环的一次迭代.

无限循环是指循环语句被无限次执行.

在设计循环时,既考虑循环控制结构体,还需要考虑循环体.

while循环首先检查循环继续条件.如果条件为true,则执行循环体;如果条件为false,则循环体结束.

do-while循环与while循环类似,只是do-while循环先执行循环体,然后在检查循环继续条件,以确定是继续还是终止.

由于while循环和do-while循环都包含循环继续条件,这个条件是和循环体相关的,重复的次数就是由循环体决定的.因此,while循环和do-while循环常用语循环次数不确定的情况.

标志值是一个特殊的值,用来标志循环的结束.

for循环一般用在循环体执行次数预知的情况,这个次数不是有循环体确定的.

for循环由三部分组成.第一部分是初始操作,通常用于初始化控制变量.第二部分是循环继续条件,决定是否执行循环体.第三部分是每次迭代后执行的操作,经常用于调整控制变量.通常,在控制结构中初始化和修改循环控制变量.

while循环和for循环都称为前测试循环(pretest loop),因为在循环体执行之前,要检测一下循环继续条件.

do-while循环称为后测试循环(posttest loop),因为在循环体执行之后,要检测一下这个条件.

在循环中可以使用关键字break和continue.

关键字break立即终止包含break的最内层循环.

关键字continue只是终止当前迭代.

package welcome;
/*
 * 使用嵌套for循环打印一个乘法表
 */
public class MultiplicationTable {
    public static void main(String[] args) {
        System.out.println("           Multiplication Table");  // 显示标题
        
        System.out.print("    ");
        for(int j = 1; j < 10; j++){
            System.out.print("   " + j);  // 显示从1到9的数字
        }
        
        System.out.println("\n----------------------------------------"); // 显示横线
        
        for(int i = 1; i < 10; i++){
            System.out.print(i + " | ");
            for(int j = 1; j < 10; j++){
                System.out.printf("%4d", i * j); // 在内层循环中,随着每个i,j取遍1,2,3,..,9,内层循环在每一行显示乘积i*j的值
            }
            System.out.println();
        }
    }
}
package welcome;

public class TestSum {
    public static void main(String[] args) {
        double sum = 0;
        int count = 0;
        
        for(double i = 0.01; i <= 1.0; i = i + 0.01){
            sum += i;
            count++;
            System.out.println(count + " " +i);
        }
        System.out.println("The sum is " + sum);
        
        sum = 0;
        double currentValue = 0.01;
        for(int i = 0; i < 100; i++){
            sum += currentValue;
            currentValue += 0.01;
        }
        System.out.println(sum);
    }
}
package welcome;

public class TestBreak {
    public static void main(String[] args) {
        int sum = 0;
        int number = 0;
        
        while(number < 20){
//            number++;
            sum += ++number;
//            number++;
            if(sum > 100){
                break;
            }
        }
        System.out.println("The number is " + number);
        System.out.println("The sum is " + sum);
    }
}
package welcome;

public class TestContinue {
    public static void main(String[] args) {
        int sum = 0;
        int number = 0;
        
        while(number < 20){
            number++;
            if(number == 10 || number == 11)
                continue;       // 当number为10或11时,就会执行continue语句,continue结束了当前迭代,就不再执行循环体中的其他语句.
            sum += number;      // 将1到20中除去10和11之外的整数都加到sum中
        }
        
        System.err.println("The sum is " + sum);
    }
}