网站首页 > 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。
猜你喜欢
- 2024-10-30 零基础学习JAVA-04.运算符(零基础学java全集)
- 2024-10-30 详解Python开发中的三元表达式#三元表达式#布尔类型
- 2024-10-30 十七、Java选择控制语句(java中提供了哪两种实现选择控制的语句)
- 2024-10-30 第一章:java基本语法之运算符和表达式(2)
- 2024-10-30 三元运算(三元运算符)
- 2024-10-30 这几个牛B的Python语法,你需要了解下
- 2024-10-30 C语言三目运算符背后技术详解(c语音中的三目运算符)
- 2024-10-30 Day15-Python基础知识-条件表达式(三元操作符)
- 2024-10-30 CSP-NOIP信息学竞赛(33)三目运算符 问号表达式 if else
- 2024-10-30 9个小技巧让你的 if else看起来更优雅
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)