Java核心技术卷I基础知识3.8.4 确定循环
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。如图3-12所示,下面的程序将数字1~10输出到屏幕上。
图3-11 do/while语句的流程图 ???图3-12 for语句的流程图
for语句的第1部分通常用于对计数器初始化;第2部分给出每次新一轮循环执行前要检测的循环条件;第3部分指示如何更新计数器。
与C++一样,尽管Java允许在for循环的各个部分放置任何表达式,但有一条不成文的规则:for语句的3个部分应该对同一个计数器变量进行初始化、检测和更新。若不遵守这一规则,编写的循环常常晦涩难懂。
即使遵守了这条规则,也还有可能出现很多问题。例如,下面这个倒计数的循环:
警告:在循环中,检测两个浮点数是否相等需要格外小心。下面的for循环
可能永远不会结束。由于舍入的误差,最终可能得不到精确值。例如,在上面的循环中,因为0.1无法精确地用二进制表示,所以,x将从9.999 999 999 999 98跳到10.099 999 999 999 98。
当在for语句的第1部分中声明了一个变量之后,这个变量的作用域就为for循环的整个循环体。
特别指出,如果在for语句内部定义一个变量,这个变量就不能在循环体之外使用。因此,如果希望在for循环体之外使用循环计数器的最终值,就要确保这个变量在循环语句的前面且在外部声明!
另一方面,可以在各自独立的不同for循环中定义同名的变量:
for循环语句只不过是while循环的一种简化形式。例如,
可以重写为:
程序清单3-5给出了一个应用for循环的典型示例。这个程序用来计算抽奖中奖的概率。例如,如果必须从1~50之间的数字中取6个数字来抽奖,那么会有(50×49×48×47×46×45)/(1×2×3×4×5×6)种可能的结果,所以中奖的几率是1/15 890 700。祝你好运!
程序清单3-5 LotteryOdds/LotteryOdds.java
一般情况下,如果从n个数字中抽取k个数字,就可以使用下列公式得到结果。
下面的for循环语句计算了上面这个公式的值:
注释:3.10.1节将会介绍“通用for循环”(又称为for each循环),这是Java SE 5.0新增加的一种循环结构。
Java基础知识之 throws和throw:声明和抛出异常 你好看官,里面请!今天笔者讲的是Java基础知识之 throws和throw:声明和抛出异常。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
Java基础知识面试题 this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
相关文章
- java Map与Bean相互转化
- Java 基础知识的一些易错点
- 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制
- 【JAVA】关于HashSet类的添加、删除、遍历实例及与ArrayList的区别。
- Java 接口自动化系列 - 基础知识
- Java核心技术卷I基础知识1.2.9 高性能
- Java核心技术卷I基础知识3.6.6 码点与代码单元
- Java核心技术卷I基础知识3.8.6 中断控制流程语句
- java多线程编程的常见陷阱
- Java Date Time 教程-java.sql.Timestamp
- 【Java】+正则
- 第58节:Java中的图形界面编程-GUI
- 第七节:详细讲解Java中的日期,java.util.date
- 第六节:详细讲解Java中的装箱与拆箱及其字符串
- 《Java和Android开发实战详解》——1.1节编程语言基础知识
- [学习笔记]Java的public,protected,private,缺省的作用域
- java Map接口
- Java线程锁,synchronized、wait、notify详解--java 管程
- Java检查异常、非检查异常、运行时异常、非运行时异常的区别
- 在java中使用JMH(Java Microbenchmark Harness)做性能测试
- java注解的定义及应用
- Java泛型基础知识笔记:泛型定义模板的意义、泛型的擦拭法、extends和super通配符区别、PESC原则
- Java的Maven基础知识笔记:Maven是什么、maven目录、pom.xml唯一ID、maven解决依赖管理、maven中央仓库与镜像、构建流程(声明周期、阶段、目标)、使用插件、模块管理、mvnw指定版本、如何发布自己的开源库
- 『Java练习生的自我修养』java-se进阶³ • 线程的等待与唤醒
- 华为OD机试 -找车位(Java) | 机试题+算法思路+考点+代码解析 【2023】
- Java Web实战开发 | Web项目的创建与运行
- Java小白入门200例59之用Calendar实现日历的打印
- Java I/O 模型之 NIO