一、引言
循环是用来控制语句块重复执行的一种结构。
Java提供了三种类型的循环语句:while循环、do-while循环和for循环
二、while循环
while循环的语法如下:
while(循环继续条件) {
// 循环体
语句(组);
}
循环体:循环中包含的重复执行的语句部分称为循环体。
循环继续条件:循环继续条件是一个布尔表达式,控制循环体的执行。
计数器控制的循环:使用一个控制变量count来对执行次数计数。这种类型的循环称为计数器控制的循环。
注意:
循环体,只有当循环体值包含一条语句或不包含语句时,循环体的花括号才可以省略;
循环继续条件,循环继续条件应该总是放在圆括号内。
警告:
无限循环:由于循环继续条件出错而使程序不能结束。
1、举例:猜数字
2、循环设计策略
1)确定需要重复的语句;
2)将这些语句放在一个循环中;
while(true) {
语句组;
}
3)为循环继续条件编码,并为控制循环添加适合的语句。
while(循环继续条件) {
语句组;
用于控制循环的附加语句;
}
3、问题:高级数学学习工具
4、使用标志值控制循环
标志位控制的循环:如果一个循环使用标志值来控制它的执行,它就称为标志位控制的循环(sentinel-controlled loop)。
警告:
在循环控制中,不要使用浮点值来比较值是否相等。
5、输入和输出重定向
输入重定向命令:
java ClassName < inputFileName.txt
输出重定向命令:
java ClassName > outputFileName.txt
同时输入输出重定向:
java ClassName < inputFileName.txt > outputFileName.
三、do-while循环
do {
// 循环体;
语句组;
} while(循环继续条件);
while循环和do-while循环的差别:
while循环和do-while循环的差在于:计算循环继续条件和执行循环体的先后顺序不同。
四、for循环
for循环的语法:
for(初始操作; 循环继续条件; 每次迭代后的操作) {
// 循环体;
语句(组);
}
for循环的流程:
?初始动作?循环继续条件-为真?语句(组)(循环体)?每次迭代后的动作?初始动作
?为假?结束
for循环只执行初始动作一次,当循环继续条件为真时,重复执行循环体中的语句,然后完成每次迭代后的操作。
for循环语句从关键字for开始,然后是用双括号扩住的循环控制结构体。这个结构体包括初始动作、循环继续条件和每次迭代后的动作。
初始动作、循环继续条件和每次迭代后的动作都要用分号分隔。控制结构体后紧跟着花括号括起来的循环体,若循环体内只有一条语句,则可以省略花括号。
控制变量的值应该使循环继续条件变为false,否则循环将成为无限循环。
提示:
如果循环控制变量只在循环体内使用而不在其他地方使用,那么在for循环的初始动作中声明它是一个很好的编程习惯。
注意:
for循环中的初始动作可以是0个或是多个以逗号隔开的变量声明语句或赋值表达式。
for循环中每次迭代后的动作可以是0个或多个以逗号隔开的语句。
如果省略for循环中的的循环继续条件,则隐含地认为循环继续条件为true。
for( ; ; ) { } == for( ; true; ) { } == while(true) { } 第三中方式比较好。
五、采用哪种循环
预测试循环和后测试循环:
while循环和for循环都称为预测试循环(pretest loop),因为继续条件是在循环体执行之前检测的,
do-while循环称为后测试循环(posttest loop),因为循环条件是在循环体执行之后检测的。
采用哪种循环:
建议使用自己觉得最自然、最舒服的一种循环语句。通常,如果已经提前知道重复次数,那就采用for循环。
如果在检测继续条件前需要执行循环体,就用do-while循环代替while循环。
警告:
在for子句的末尾和循环体之间多写分号是一个常见的错误。通常在使用次行块格式时容易发生这些错误。使用行尾块风格可以避免这种类型的错误。
在do-while循环中,需要分号来结束这个循环。
七、最小化数值误差
计算机使用固定位数表示浮点数,因此,不能精确表示某些浮点数。
double > float
为了解决浮点数是用近似值表示的,循环中使用整数计数器以确保所有数字都被加到sum中。
从大到小添加数字没有从小到大添加数字得到的值精确。这种现象是有限精度算术的产物。
为了得到更精确的结果,仔细选择计算的顺序,在大数之前先增加小数是减少误差的一种方法。
八、实例学习
1、求最大公约数
2、预测未来学费
3、蒙特卡罗模拟
九、关键字break和continue
关键字break和continue都可以在循环语句中使用。
break:
你已经在switch语句中使用过关键字break;你也可以在一个循环中使用break立即终止该循环。
continue:
也可以在循环中使用关键字continue。当程序遇到continue时,它会结束当前的迭代。程序控制转向该循环体的末尾。
break和continue的区别:
break跳出了整个循环,continue只是跳出了一次迭代。
注意:
continue语句总是在一个循环内。在while和do-while循环中,continue语句之后会马上计算循环继续条件;
而在for循环中,continue语句之后会立即先执行每次迭代后的动作,再计算循环继续条件。
使用break语句可以使程序更简单更易读。但是,应该谨慎使用break和continue。过多使用break和continue会使循环有很多退出点,使程序很难阅读。
问题:显示素数
十、(GUI)使用确认对话框控制循环
showInputDialog接收输入;
showConfirmDialog控制循环;
showMessageDialog显示。
循环是用来控制语句块重复执行的一种结构。
Java提供了三种类型的循环语句:while循环、do-while循环和for循环
二、while循环
while循环的语法如下:
while(循环继续条件) {
// 循环体
语句(组);
}
循环体:循环中包含的重复执行的语句部分称为循环体。
循环继续条件:循环继续条件是一个布尔表达式,控制循环体的执行。
计数器控制的循环:使用一个控制变量count来对执行次数计数。这种类型的循环称为计数器控制的循环。
注意:
循环体,只有当循环体值包含一条语句或不包含语句时,循环体的花括号才可以省略;
循环继续条件,循环继续条件应该总是放在圆括号内。
警告:
无限循环:由于循环继续条件出错而使程序不能结束。
1、举例:猜数字
2、循环设计策略
1)确定需要重复的语句;
2)将这些语句放在一个循环中;
while(true) {
语句组;
}
3)为循环继续条件编码,并为控制循环添加适合的语句。
while(循环继续条件) {
语句组;
用于控制循环的附加语句;
}
3、问题:高级数学学习工具
4、使用标志值控制循环
标志位控制的循环:如果一个循环使用标志值来控制它的执行,它就称为标志位控制的循环(sentinel-controlled loop)。
警告:
在循环控制中,不要使用浮点值来比较值是否相等。
5、输入和输出重定向
输入重定向命令:
java ClassName < inputFileName.txt
输出重定向命令:
java ClassName > outputFileName.txt
同时输入输出重定向:
java ClassName < inputFileName.txt > outputFileName.
三、do-while循环
do {
// 循环体;
语句组;
} while(循环继续条件);
while循环和do-while循环的差别:
while循环和do-while循环的差在于:计算循环继续条件和执行循环体的先后顺序不同。
四、for循环
for循环的语法:
for(初始操作; 循环继续条件; 每次迭代后的操作) {
// 循环体;
语句(组);
}
for循环的流程:
?初始动作?循环继续条件-为真?语句(组)(循环体)?每次迭代后的动作?初始动作
?为假?结束
for循环只执行初始动作一次,当循环继续条件为真时,重复执行循环体中的语句,然后完成每次迭代后的操作。
for循环语句从关键字for开始,然后是用双括号扩住的循环控制结构体。这个结构体包括初始动作、循环继续条件和每次迭代后的动作。
初始动作、循环继续条件和每次迭代后的动作都要用分号分隔。控制结构体后紧跟着花括号括起来的循环体,若循环体内只有一条语句,则可以省略花括号。
控制变量的值应该使循环继续条件变为false,否则循环将成为无限循环。
提示:
如果循环控制变量只在循环体内使用而不在其他地方使用,那么在for循环的初始动作中声明它是一个很好的编程习惯。
注意:
for循环中的初始动作可以是0个或是多个以逗号隔开的变量声明语句或赋值表达式。
for循环中每次迭代后的动作可以是0个或多个以逗号隔开的语句。
如果省略for循环中的的循环继续条件,则隐含地认为循环继续条件为true。
for( ; ; ) { } == for( ; true; ) { } == while(true) { } 第三中方式比较好。
五、采用哪种循环
预测试循环和后测试循环:
while循环和for循环都称为预测试循环(pretest loop),因为继续条件是在循环体执行之前检测的,
do-while循环称为后测试循环(posttest loop),因为循环条件是在循环体执行之后检测的。
采用哪种循环:
建议使用自己觉得最自然、最舒服的一种循环语句。通常,如果已经提前知道重复次数,那就采用for循环。
如果在检测继续条件前需要执行循环体,就用do-while循环代替while循环。
警告:
在for子句的末尾和循环体之间多写分号是一个常见的错误。通常在使用次行块格式时容易发生这些错误。使用行尾块风格可以避免这种类型的错误。
在do-while循环中,需要分号来结束这个循环。
七、最小化数值误差
计算机使用固定位数表示浮点数,因此,不能精确表示某些浮点数。
double > float
为了解决浮点数是用近似值表示的,循环中使用整数计数器以确保所有数字都被加到sum中。
从大到小添加数字没有从小到大添加数字得到的值精确。这种现象是有限精度算术的产物。
为了得到更精确的结果,仔细选择计算的顺序,在大数之前先增加小数是减少误差的一种方法。
八、实例学习
1、求最大公约数
2、预测未来学费
3、蒙特卡罗模拟
九、关键字break和continue
关键字break和continue都可以在循环语句中使用。
break:
你已经在switch语句中使用过关键字break;你也可以在一个循环中使用break立即终止该循环。
continue:
也可以在循环中使用关键字continue。当程序遇到continue时,它会结束当前的迭代。程序控制转向该循环体的末尾。
break和continue的区别:
break跳出了整个循环,continue只是跳出了一次迭代。
注意:
continue语句总是在一个循环内。在while和do-while循环中,continue语句之后会马上计算循环继续条件;
而在for循环中,continue语句之后会立即先执行每次迭代后的动作,再计算循环继续条件。
使用break语句可以使程序更简单更易读。但是,应该谨慎使用break和continue。过多使用break和continue会使循环有很多退出点,使程序很难阅读。
问题:显示素数
十、(GUI)使用确认对话框控制循环
showInputDialog接收输入;
showConfirmDialog控制循环;
showMessageDialog显示。