专业的JAVA编程教程与资源

网站首页 > java教程 正文

java学习笔记4——流程控制语句(java学习笔记)

temp10 2024-10-30 04:09:54 java教程 11 ℃ 0 评论

如果有写的不对的地方,欢迎评论指正,相互学习相互进步,谢谢!

这里简单讲解一下基本的流程控制语句,选择,循环等和其他语言一样,这里不多做介绍,讲一些容易出错的

java学习笔记4——流程控制语句(java学习笔记)

一、for循环

在Java中,除了for,还有一个增强型for循环,这是jdk5.0增加的新特性,下面介绍用法。foreach的主要格式为:

此类方法拥有不错的性能,主要是用在遍历数组、集合上,但是和for还是有点区别的。所有的foreach都可以转化为for语句,但是for语句并不是所有的都可以转化为foreach的格式。其实本质上foreach还是一个for循环。还是直接来看代码:

结果:

其实简单一句话,就是对输入的test进行遍历,然后做相应操作,result就是每一次遍历test里面的元素。result前面的就是元素的类型,可以是基本数据类型,也可以是引用数据类型。

Attention:

在循环遍历的过程中,不能对数组进行增加删除操作,不然就会产生

java.util.ConcurrentModificationException

原因简单说一下,就是foreach的内部实现是以iterator迭代器实现的,在开始前会有一个count的大小统计,如果更改了遍历元素的size,会使得count的值发生变化,从而报错。有兴趣的同学可以去看一些foreach的具体实现以及iterator的源码。还有一个很有意思的就是这个错误也不是一定会出现的,这就留给同学们自己去发现了,这里不做阐述。

个人建议,如果要遍历数组或者集合,还是直接用iterator比较好。

二、三目运算符

java中的三目运算符,一般形式为

表达式1?表达式2:表达式3;

化成if-else语句的话,就是:

看到这里,其实这个三目表达式很好理解,就是一个简化的选择语句嘛,那为什么要拿出来呢,因为他的结合方向。

在面试或者笔试的时候我们会遇到这样的题目:

一看到这样的题目的时候可能会懵,不过要知道,三目运算符的结合性是从右至左,就是说,在遇到相同优先级的运算中(java中三目运算符的优先级相同的只有它自己),最右边的先进行运算,然后再是左边的,所以,其实

a > b ? a : i > j ? i : j

也可以看做是

a > b ? a :( i > j ? i : j)

。所以,上题的答案是4,在实际开发中,为了避免这种会让自己懵的情况发生,要善于利用括号!

这里再看一道题目,或许在笔试的时候会碰到:

总结:

仔细推敲一下,可以发现==,++,三目的优先级应该是++ > == > 三目,所以第一个运算判断条件应该是(a=0)是否和b相等,不相等那就是(b++),这时候要注意++的运算,是先使用后自加,所以输出b,那为什么是2呢,因为在前面判断的时候b++了一次,所以为2。看了解释还迷糊的同学可以转化成if-else的语句形式,就明了了,这里不再作解释。同理分析第二个运算,可以得到答案是0。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表