Java入门6:循环结构程序
发布:hfhyt 日期:2008年10月8日
分支结构程序使得程序在执行时,可以根据条件在执行的成立与否来有选择性的执行某段代码,或者不执行某段代码,使得程序能够实现更加灵活的功能。
循环结构的程序允许程序在执行时,根据条件的是否成立情况,使得某段代码能够被连续执行多次。
本节内容的学习目标:
- 使用while循环编写代码
- 使用for循环编写代码
- 编写嵌套循环
- 说出何时使用for循环,何时使用while循环
- 使用do循环编写代码
- 说出在while、for或do循环结构内部如何使用continue关键字来控制循环
一、初说循环
【例1.1】看看下面程序的执行结果。
02 public static void main( String [ ] args ) {
03 int count = 0;
04 while ( count < 5 ) {
05 System.out.println( "Hello world ." ) ;
06 count++;
07 }
08 }
09 }
该程序的执行结果显示:
Hello world.
Hello world.
Hello world.
Hello world.
循环结构能够:
- 在被检查的条件存在时一直执行某些操作
- 改变被检查项的值
有下面部分组成:
- initialize —— 循环初始化
- boolean_expression —— 条件表达式
- code_block —— 循环体,即被连续多次执行的语句(可以是多条语句)
- update( or increment ) —— 能够对条件表达式的值产生变化的更新操作
while语句结构:
initialization
while( boolean_expression ) {
code_block;
update;//optional
}
【例1.2】显示100以内所有正奇数。
02 public static void main( String [ ] args ) {
03 int count = 1;
04 while ( count < 100 ) {
05 System.out.println( count ) ;
06 count = count +2;
07 }
08 }
09 }
【例1.3】计算1 - 1/3 + 1/5 - 1/7 + … - 1/99的值。
02 public static void main( String [ ] args ) {
03 double sum = 0 , count = 1 ;
04 int flag = 1;
05 while ( count <= 99 ) {
06 sum = sum + flag * 1/count ;
07 count = count +2;
08 flag = - flag ;
09 }
10 System.out.println( "1 - 1/3 + 1/5 - 1/7 + … - 1/99 = " + sum );
11 }
12 }
二、练习1
求“水仙花数”。水仙花数是一个三位数,它的各位数字的立方和等于该数本身。如153 = 13+53 +33,所以153是水仙花数。
三、嵌套循环
问题:要打印一个如下所示的矩形:
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
- 上面程序中13~17行为内部循环,10~20行为外部循环,内部循环是外部循环循环体的一部分
- 内部循环控制行的显示,外部循环控制显示的行数
- 内部循环执行的频率要快于外部循环
四、练习2
- 使用while循环和前面讲到的switch语句来显示一周内的星期几。给它取名为DaysOfWeek3.java
- 编写一个名为WhileTimes的程序,这个程序要使用while循环显示前10个数的倍数表
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12……
…… - 显示如下图案
#
###
#####
#######
#########
五、for循环
1、语法说明
for ( initialize [ , initialize ] ; boolean_expression ; update [ , update ] ) {
code_block;
}
for语句的执行流程见下图
该语句结构中的initialize、boolean_expression、code_block、update的含义与while语句中的含义相同。
2、for语句与while语句的应用场合
我们完全可以使用whiler语句完成for语句的功能。
一般情况下,for用于能够预先确定循环次数的场合,而while用于循环次数预先不容易确定的场合。
3、示例
例1.1程序功能实现在屏幕上显示五行“Hello world.”,用for循环实现程序更简洁。
02 public static void main( String [ ] args ) {
03 for ( int i = 0 ; i < 5 ; i++ ) {
04 System.out.println( "Hello world" );
05 }
06 }
07 }
例1.2程序实现显示100以内正奇数,其数据分别是1、3、5、…、99,循环的次数也是相对固定的,for语句实现的程序如下:
02 public static void main( String [ ] args ) {
03 for ( int i = 1 ; i < 100 ; i+=2 ) {
04 System.out.println( i );
05 }
06 }
07 }
【例1.4】需要从0开始计数,步长为2,同时要从100开始向下计数,步长为3,而且当第一个数大于第二个数时停止计数,使用for循环完成以下功能
02 public static void main( String [ ] args ) {
03 int i , j ;
04 for ( i = 0 , j=100 ; i <=j ; i+=2 , j-=3 ) {
05 System.out.println( j+" is not smaller than "+i+" yet" ) ;
06 }
07 }
08 }
4、练习——重新实现练习2的各题目
六、do-while循环
1、语法格式
initialize //可选,视程序而定
do {
update //可选以及位置视程序而定
code_block;
} while ( boolean_expression ); //最后的分号是必须的
do-while循环的循环体至少要执行依次(第1次循环时),for和while循环的循环体有可能一次都不执行,这是do-while与for和while的重要区别之一;另外do-while的条件判断发生在循环体执行之后,while和for的条件判断发生在循环体执行之前。
2、用do-while重新实现例1.1 。
02 public static void main( String [ ] args ) {
03 int count = 0;
04 do {
05 System.out.println( "Hello world ." ) ;
06 count++;
07 }while ( count < 5 ) ;
08 }
09 }
3、练习
编写一个名为DoTwoRandom的程序,使他能够生成并打印范围在0到5之间的两个随机数,并保证他们是不一样的。将编写的这个程序多运行几次,以保证他能够正确运行
七、使用continue和break
break语句除了允许用在switch语句中用来结束switch的执行外,也可用在循环语句的循环体中,其作用是结束所在循环语句的执行。
continue语句只能用在循环语句的循环体中,其作用是结束本次循环体(注意不是结束循环语句的执行)的执行,执行下一次循环。
思考:考虑这样一个for语句,他从1循环到50,如果循环到9的倍数,则给9的倍数的计数加1
- 如果循环重复中的数字不是9的倍数,必须使用continue终止此次循环重复
- 如果是9的倍数,将继续执行下一条语句,此语句给multiplesOf9计数器加1
八、综合练习
- 显示如下图案:
#
###
#####
#######
- 显示如下图案
1
121
12321
1234321
123454321
- 百钱买百鸡问题。母鸡5元钱一只,公鸡三元钱一只,小鸡一元钱三只,现有100元钱想买100只鸡,共有多少种买法?
- 编程:输出一数列的前n项,n的值由命令行输入。该数列的第1、2、3项为1,以后的各项是其前3项的和,即1、1、1、3、5、9、17、31、…
Tags: Java入门
相关文章:Java入门5:分支结构程序 (2008-10-5 16:57:6)
Java入门4:运算符与类型转换 (2008-10-5 11:9:23)
Java入门3:类与对象的简单使用 (2008-10-4 17:9:3)
Java入门2:数据类型 (2008-10-4 10:20:46)
Java入门1:Java基础之基础 (2008-10-3 22:32:37)
上一篇
下一篇