zoukankan      html  css  js  c++  java
  • 第4章-控制执行流程

    Think in java 读书笔记

    pikzas

    2019.03.06

    第4章-控制执行流程

    知识点

    while do-while和for

    while循环中会先去查询判断条件,如果为false,则直接退出循环,一次也不执行。

    do-while循环会先执行一遍循环体内的代码,然后查询判断条件,如果为false,才会退出循环。

    for(initialization;boolean-expression;step){statement}

    • initialization 只会执行一次
    • 然后依据boolean-expression判定 结果为true 进入循环,false 跳出循环
    • 执行statement
    • 执行step
    • 重复第二步

    for循环中的逗号操作符 可以在初始化的时候,同时初始化多同类型的变量

    class Demo{
       public static void test1() {
           System.out.println("--test1--");
           for (int i = 1 , j = i +5 ; (i < 5 && j < 8) ; i++ , j =i *2) {
               System.out.println("i = "+i+", j = "+j);
           } 
       }
    }
    //output
    //i = 1, j = 6
    //i = 2, j = 4
    //i = 3, j = 6
    

    foreach 只能运用在数组或者是实现了Iterable接口的对象上

    break退出当前包括之后所有的循环;continue仅仅是跳过当前循环,之后该咋循环还是咋循环

    while(true) for(;true;)是等价的。

    标签 (lable:) 用于多层的循环嵌套中,类似于goto关键字

    1. 一般的continue是跳出所在循环的当次操作
    2. 带标签的continue是跳出这个标签后面紧接着的循环的当次操作
    3. 一般的break是结束所在循环的之后所有操作,以及当次操作break之后的代码都不会执行
    4. 带标签的break是结束标签后紧接着的那个循环的所有后续操作
    class Demo{
        public static void main(String[] args){
            int i = 0;
            outer:
            for(;;){
                inner:
                for(;i<10;i++){
                    System.out.println("i = "+i);
                    if(i==2){
                        System.out.println("continue");
                        continue ;
                    }
                    if(i==3){
                        System.out.println("break");
                        i++;
                        break;
                    }
                    if(i==7){
                        System.out.println("continue outer");
                        i++;
                        continue outer;
                    }
                    if(i==8){
                        System.out.println("break outer"); 
                        break outer;;
                    }
                    
                    for (int k = 0;k < 5;k++ ) {
                        if(k==3){
                            System.out.println("continue inner");
                            continue inner;
                        }
                    }
                }
            }
          
        }
    }
    
    //output
    //i = 0
    //continue inner
    //i = 1
    //continue inner
    //i = 2
    //continue
    //i = 3
    //break
    //i = 4
    //continue inner
    //i = 5
    //continue inner
    //i = 6
    //continue inner
    //i = 7
    //continue outer
    //i = 8
    //break outer
    

    switch(indicator) case:statement;break;

    indicator 只能是byte char short int string 和枚举,不能是boolean long float double;
    而且看下面的例子也是可以成功运行的
    不加break 注意case 穿透。

    class Demo{
        public static void main(String[] args){
            byte i = 0b10;
                switch (i){
                    case 2:
                        System.out.println(1111);
                        break;
                    case 0b11:
                        System.out.println(2222);
                        break;
                    default: 
                        System.out.println("xxxxx");
            }
        }
    }
    
    class Demo{
        public static void main(String[] args){
            short i = 126;
            switch (i){
                case (char)23:
                    System.out.println(1111);
                    break;
                case 0b1111110:
                    System.out.println(2222);
                    break;
                default:
                    System.out.println("xxxxx");
            }
        }
    }
    
  • 相关阅读:
    架构原则
    基于DDD的Lean Framework
    Javascript 内核Bug
    Back
    Exercise:函数应用于排序
    Lesson5:函数简单应用(二)
    lesson4: 函数简单应用
    lesson3: While 语句简单应用
    range 和len的并用
    lesson2: Python:for语句简单应用
  • 原文地址:https://www.cnblogs.com/Pikzas/p/12158974.html
Copyright © 2011-2022 走看看