首页 理论教育 Java程序设计-while和do-while语句简介

Java程序设计-while和do-while语句简介

时间:2023-11-26 理论教育 版权反馈
【摘要】:Java语言提供了两种while语句,即while语句和do-while语句。然后while语句继续测试表达式确定是否执行循环体,直到该表达式返回false。它们之间唯一的区别是在验证继续条件之前,do-while语句就已经执行了一次。下面的例2-11用do-while语句实现古巴比伦算法计算2的平方根。

Java程序设计-while和do-while语句简介

Java语言提供了两种while语句,即while语句和do-while语句。

1.while语句

当条件保持为true的时候,while语句重复执行语句块。while语句的基本语法为:

首先,while语句计算括号中的表达式,它将返回一个布尔值(true或false)。如果表达式返回true,则执行花括号中的循环体。然后while语句继续测试表达式确定是否执行循环体,直到该表达式返回false。

【例2-10编写一个程序,使用while语句复制一个给定字符串的各个字符,直到程序找到给定字符u为止。

运行结果如下:

这里顺便提及一下字符串的分类,它分为:串常量变量

1)串常量分为直接串常量和String类的对象。直接串常量的值一旦创建不能再变动,如:"你好!"、"123AB"为直接串常量。

2)串变量为StringBuffer类的对象。创建串变量的之后允许扩充和修改。

此外,Java语言为String类、StringBuffer类提供了许多方法,如:比较串、求子串、检索串等,以提供各种串的运算与操作,详细内容将在第3章的3.3节介绍。

2.do-while语句

do-while语句的格式为(www.xing528.com)

do-while语句本质上与while语句相同,只是它的继续条件放在循环的末尾而不是像while语句放在循环的开始。它们之间唯一的区别是在验证继续条件之前,do-while语句就已经执行了一次。

下面的例2-11用do-while语句实现古巴比伦算法计算2的平方根。算法原理如下:设x是978-7-111-44824-2-Part01-99.jpg的一个近似值,即978-7-111-44824-2-Part01-100.jpg,则x2≈2。从而x≈2/x。不难证明x和2/x这两个数中,必有一数小于978-7-111-44824-2-Part01-101.jpg,而另一数必大于978-7-111-44824-2-Part01-102.jpg。这一结论是本算法的核心。由此得到这两个数的平均(x+2/x)/2将更接近978-7-111-44824-2-Part01-103.jpg,反复地用

x=(x+2/x)/2 (2-1)

即求得978-7-111-44824-2-Part01-104.jpg的近似值。

【例2-11】用古巴比伦算法计算平方根。

程序运行结果如下:

上述近似值与Java的内置方法sqrt(2.0)的结果相比较,古巴比伦算法仅仅进行5次计算就达到了相当高的精度,可见该算法的效率是相当高的。程序中do-while的继续条件是Math.abs(x*x-2.0)>TOL*2*x。即当|x*x-2.0|<=TOL*2*x时,程序中止计算。这个条件就是

|x−2.0/x|<=TOL*2=1/1015

注意到978-7-111-44824-2-Part01-107.jpg介于x和2.0/x之间,所以,这就保证了

在do-while程序块中,实际上用x0=random.nextDouble()产生了初始值x0,然后用

xn+1=(xn+2.0/xn)/2(n=0,1,…) (2-2)产生序列xn(n=0,1,…)。方程(2.1)或(2.2)将一次运算的输出作为下一次运算的输入,这种算法就是迭代算法,或称为递推算法,是现代计算常用的算法之一。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈