zoukankan      html  css  js  c++  java
  • 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("
    ----------------------------------------"); // 显示横线
            
            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);
        }
    }
  • 相关阅读:
    TopCoder SRM502 Div1 500 贪心 01背包
    TopCoder SRM502 Div1 1000 动态规划
    LOJ#6433. 「PKUSC2018」最大前缀和 状压dp
    Codeforces 830D Singer House 动态规划
    Codeforces 830C Bamboo Partition 其他
    UOJ#275. 【清华集训2016】组合数问题 数位dp
    Codeforces 806 D. Perishable Roads Dijkstra
    UOJ#53. 【UR #4】追击圣诞老人 树链剖分 k短路
    Java第二天——标识符命名规则、Java的知识、快捷键的使用、Scanner获取值的常用方法
    Scanner的例子
  • 原文地址:https://www.cnblogs.com/datapool/p/6224075.html
Copyright © 2011-2022 走看看