《Java 7程序设计入门经典》一3.12 do-while循环

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第3章,第3.12节,作者 (美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.12 do-while循环

最后一种Java循环是do-while循环。与在循环开始测试循环条件的for循环和while循环不同,do-while循环在每次循环结束时测试条件。这意味着,do-while循环总是至少执行一次。do-while循环的一般形式为:
image

尽管在只出现一条语句时可以不使用花括号,当它们常用来提供do-while结构的可读性,防止其与while语句混淆。只要条件表达式为真,do-while循环就不断迭代。
下面程序演示了do-while循环,直到用户输入字母q时循环结束。
image
image

注意,do-while循环的循环体提示键盘输入,然后获得输入的键值。在条件表达式中,测试输入的字符与字符q是否相等。如果按键不是q,重复循环。由于在循环底部测试条件,因此循环体会至少执行一次,保证提示用户按键。
使用do-while循环,可以进一步改进本章早些时候提到的猜谜程序。这次,程序不断循环,直到猜到正确字母。
image

下面是示例的运行结果:
image
image

注意,程序中还有一个有趣的事情。在程序中有两个do-while循环。第一个循环直到用户猜对字符才停止,其操作和含义很明了。第二个循环需要一些解释,现将其摘录如下:
image

正如前面解释过的,控制台输入是行缓冲的。必须在字符发送前按回车键。按回车键会生成一个回车符和一个换行符(即新行)序列。这些字符会附加在输入缓冲区中。另外,如果在按回车键前输入的字符多于一个,它们将也会存储在输入缓冲区中。上面的那个循环通过不断读取输入来丢弃多余的字符,直到到达行尾。如果不丢弃那些字符,它们也就会送至程序。这不是希望看到的。(如果想查看这样的现象,可以试图移除内层的do-while循环。)在学习到更多的Java知识后,第11章会介绍更多处理控制台输入的高级方法。但是,使用read()方法可以让人对Java的输入/输出系统的操作基础有所了解。它同时也是Java循环的又一个例子。
image
image
image
image
image
image

相关文章
|
10天前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
102 63
|
8天前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 6
|
18天前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
21 1
|
19天前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
11 1
|
2月前
|
Java
java基础(2)循环语句for、while、do...while
本文介绍了Java中的基础循环语句,包括for循环、while循环和do...while循环。文章通过示例代码展示了for循环的基本结构和用法,while循环的先判断后执行逻辑,以及do...while循环的先执行后判断逻辑。这些循环语句在Java编程中非常常用,用于执行重复的任务。
42 4
java基础(2)循环语句for、while、do...while
|
2月前
|
Java
Java循环
Java循环
42 6
|
2月前
|
编译器
Java--for循环语句
Java--for循环语句
|
7天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
77 38
|
4天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
8天前
|
Java 调度
[Java]线程生命周期与线程通信
本文详细探讨了线程生命周期与线程通信。文章首先分析了线程的五个基本状态及其转换过程,结合JDK1.8版本的特点进行了深入讲解。接着,通过多个实例介绍了线程通信的几种实现方式,包括使用`volatile`关键字、`Object`类的`wait()`和`notify()`方法、`CountDownLatch`、`ReentrantLock`结合`Condition`以及`LockSupport`等工具。全文旨在帮助读者理解线程管理的核心概念和技术细节。
24 1
[Java]线程生命周期与线程通信