【java学习】控制执行流程:循环与判断

1,for循环

1.1 for执行顺序

for(表达式1;表达式2;表达式3){

}

先执行表达式1–>然后执行表达式2,如果为false,结束循环,否则执行循环体–>执行表达式3

1.2 foreach循环

for(Object item : ObjectList){
}

1.3 循环效率比较

JDK5 之后,遍历方式:ForEach、迭代器、for循环。

直接for循环效率最高,其次是迭代器和 ForEach操作。
对于集合,ArrayList手写的循环比增强型for循环更快,其他的集合没有这种情况。因此默认情况下使用增强型for循环,而遍历ArrayList使用传统的循环方式。

作为语法糖,其实 ForEach 编译成 字节码之后,使用的是迭代器实现的,反编译后,testForEach方法如下:

    public static void testForEach(List list) {  
        for (Iterator iterator = list.iterator(); iterator.hasNext();) {  
            Object t = iterator.next();  
            Object obj = t;  
        }  
    }  
//可以看到,只比迭代器遍历多了生成中间变量这一步,因为性能也略微下降了一些。

2,while循环

2.1 while执行顺序

while(表达式1){
    表达式2}

每次循环,先执行表达式1,再执行表达式2.

2.2 do-while执行顺序

do{
    表达式1}while(表达式2);

每次循环,先执行表达式1,再执行表达式2.

3,循环中断语句

1)return

2)break

  1. 多层循环也只能跳出当前循环。

3)continue

  1. 多层循环也只能跳出当前循环。

4)标签

//这个标签可以随便定义
        lable_class:
        for (int i = 1;i < 4;i++) {  
            for (int j = 1;j < 11;j++) {  
                System.out.println("aaa");
                break lable_class;
                }
            }
        }
  1. 标签可以随便定义
  2. break 标签,直接跳出多层循环。继续循环后的程序。
        lable_class:
        for (int i = 1; i < 4; i++) {
            System.out.println("aaa" + i);
            for (int j = 1; j < 11; j++) {
                System.out.println("bbb" + j);
                continue lable_class;
            }
        }
        System.out.println("ccc");

输出结果:
aaa1
bbb1
ccc
  1. continue 标签,直接进行标签处的下一次循环
        lable_class:
        for (int i = 1; i < 4; i++) {
            System.out.println("aaa" + i);
            for (int j = 1; j < 11; j++) {
                System.out.println("bbb" + j);
                continue lable_class;
            }
        }
        System.out.println("ccc");

输出结果:
aaa1
bbb1
aaa2
bbb1
aaa3
bbb1
ccc

4,switch

switch(m){
     case 1:break;
     case 2:break;
     default:
}
  1. case后一定添加break,否则会继续执行后续case;
  2. 支持类型:
    byte、short、char、int (Java 5以前);
    enum枚举类型(Java5);
    字符串(String)(Java 7)。
    长整型(long)在目前所有的版本中都是不可以的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值