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是的一个近似值,即,则x2≈2。从而x≈2/x。不难证明x和2/x这两个数中,必有一数小于,而另一数必大于。这一结论是本算法的核心。由此得到这两个数的平均(x+2/x)/2将更接近,反复地用
x=(x+2/x)/2 (2-1)
即求得的近似值。
【例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
注意到介于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)将一次运算的输出作为下一次运算的输入,这种算法就是迭代算法,或称为递推算法,是现代计算常用的算法之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。