美文网首页
【Java梳理】程序流程控制

【Java梳理】程序流程控制

作者: 田文健 | 来源:发表于2017-12-12 10:44 被阅读0次

    在编程过程中需要根据实际控制代码的执行流程,而不是从头到尾的执行下去。一般的流程控制为分支和循环。
    1分支:
    if else是最常用的分支结构。if 可以单独使用.

          int a = 1;
          if (a == 1){
                System.out.println("a is 1");
            }
            if (a == 2){
                System.out.println("a is 2");
            }
            if (a != 1 && a != 2){
                System.out.println("a 不是1也不是2 ");
            }
    

    等价于

            int a = 1;
            if (a == 1){
                System.out.println("a is 1");
            }else if(a == 2){
                System.out.println("a is 2");
            }else{
                 System.out.println("a 不是1也不是2 ");
             }
    

    对于多路分支结构,推荐使用switch(开关)语法,

    int a = 1;
    switch (a) {
        case 1:
            System.out.println("a is 1");
        case 2:
            System.out.println("a is 2");
        default:
            System.out.println("a 不是1也不是2 ");
    }
    

    注意case语句的值只能是在编译期就有明确值的常量,这和代码会编译成hash表有关。另外在早期的JDK中是不支持以String类型作为case值的,这个特性在JKD1.7才加入。

    除了分支以外,循环是另外一种逻辑控制结构,最常见的写法为

    for (int i = 1, c = 30, j = 2; i < c; i++, j++){
                System.out.println(i);
    }
    

    注意for循环的括号里的内容两个分号分隔的三个部分,第一个部分是循环初始化时执行,第二个部分是一个返回布尔值的表达式,用来判断是否继续执行循环,第三个部分是在每一次执行循环体代码后做的操作。

    除了for以外while和也很常用

    while (true){
                // this is a dead loop
     }
    
    //do while
    do{
                System.out.println("尽管while条件是false,但是还是可以执行一遍");
    }while (false);
    

    注意以上while和do while的区别, 在do while 中先执行一次循环体的代码再判断whie。
    从JDK 1.5开始 Java提供了foreach 方式的循环

            int[] numbers = {1, 2, 3, 4};
            for(int i : numbers){
                System.out.println(i);
            }
    

    当然除了遍历数组以外,这种方式更多地用来遍历集合(Collection)。

            Collection<Integer> integers = new ArrayList<>();
            integers.add(1);
            integers.add(2);
            for (Integer integer : integers){
                System.out.println(integer);
            }
    

    相关文章

      网友评论

          本文标题:【Java梳理】程序流程控制

          本文链接:https://www.haomeiwen.com/subject/xiylvxtx.html