【Java梳理】程序流程控制

2017-12-12  本文已影响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);
        }
上一篇下一篇

猜你喜欢

热点阅读