Thinking in java-执行流程控制

任何事情基础很重要,扎实的基础才能对事物掌握本质,达到融汇贯通。很多时候出现问题都是由于基础细节不太清楚。编程语言也一样,任何复杂庞大的系统剖其机理无非是那些最基本的东西组成。而一个编程语言的语法基础是万石之基,语法掌握的不够精确,很多时候就会出现意向不到的问题,而且这些问题都是非常隐蔽却不起眼的。这些问题我也经常遇到,我非科班的java学习者,没有系统的学习过该语言,所以用起来老是会有各种各样的问题,这个系列文章是我在看thinking in java 这本书时总结的一些针对我个人容易出错混淆的概念和技术点。

1. 逗号操作符
java中唯一用到逗号操作符的地方是for循环表达式,在表达式的初始化和步进控制部分,可以使用一系列的由逗号分隔的语句,并且会独立运行。

private  void   testFor(){
        for (int i = 1 , j = i + 10 ; i < 5 ; i++ , j = i * 2){
            Log.e(TAG, "i =  " + i + " j = " + j);
        }
    }

运行结果:
i = 1 j = 11
i = 2 j = 4
i = 3 j = 6
i = 4 j = 8

在初始化部分可以定义任何数量的同类型的变量,无论是在初始化和步进部分都是顺序执行的。

2. Foreach语法
Java SE5引入了一种新的,也更简洁的for循环语法,可以作用于数组和容器,这种方式不必创建int变量区对由访问项构成的序列进行计数,foreach会自动读取每一项。

private void testForeach(){
        Random random = new Random(30);
        float arrF[] = new float[5];
        for (int i = 0 ; i < 5 ; i++){
            arrF[i] = random.nextFloat();
        }
        for (float f :  arrF) {  
            Log.e(TAG, "" + f);
        }
    }

for语句和foreach语句在不同的情况下会有性能上的一些差异问题,后续在进阶部分中再研究学习。

3. return
return 关键词有两个方面的用途:
1.指定一个方法返回什么样的类型
2.可以退出当前的方法,并返回定义的值

private int testReturn(){
        int[] numbers = {10,20,30,40,50};
        for (int x : numbers) {
            if(x == 30){
                return 30;
            }
            System.out.println("x = "  + x);
        }
        return 0;
    }

运行结果:
x = 10
x = 20

这个函数会运行两次,打印x=10, 20的结果。当x=30的时候就会返回30,并结束该方法。如果if判断中始终为false,则会打印出所有值,最后返回0,结束该方法。

4. break 和 continue
再任何迭代语句的主体部分,都可以用break 和continue 控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句,而continue则停止执行当前的迭代,然后退出循环起始处,开始下一次迭代。另外需要注意的地方是,他们都只能终端当前循环。
break用法:

private void testBreak(){
        int[] numbers = {10,20,30,40,50};
        for (int x : numbers) {
            if(x == 30){
                break;
            }
            System.out.println("x = "  + x);
        }
    }

运行结果:
x = 10
x = 20
运行的结果和return一样。 当x=30的时候break,结束循环了。

continue用法:

private void  testContinue(){
        int[] numbers = {10,20,30,40,50};
        for (int y :  numbers) {
            if(y == 30){
                continue;
            }
            System.out.println("y = "  + y);
        }
    }

运行结果:
y = 10
y = 20
y = 40
y = 50
当x=30的时候,跳过后面的语句,继续开始下一个循环。

5. 无穷循环
有两种方式:
1. while(true){

}
2. for(; ;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值