4.3 循环语句

循环语句在程序设计中有什么作用呢?

【实例4.7】下面先看一段简单的程序段,再来看看使用循环语句编写程序的好处在哪里。


01 ///将x连续加1加10次

02 public class control4

03 {

04 public static void main(String[]args)

05 {

06 int x=1;

07 x=x+1;

08 x=x+1;

09 x=x+1;

10 x=x+1;

11 x=x+1;

12 x=x+1;

13 x=x+1;

14 x=x+1;

15 x=x+1;

16 x=x+1;

17 System.out.println(x);

18 }

19 }


【代码说明】代码的含义是让变量“x”连续加1共加10次。如果想要加1加100次,那要让“x=x+1”这个表达式重复100次。

【运行效果】


11


这样庞大的程序段所要完成的功能,不过是一个很简单的相加功能。为了解决这类问题,程序设计中引入了循环语句。循环语句总共有3种常见的形式:for语句、while语句、do/while语句。下面将逐个进行详细的介绍。

4.3.1 for语句

for语句的基本结构如下所示。


01 for(初始化表达式;判断表达式;递增(递减)表达式)

02 {

03 执行语句

04 }


【实例4.8】针对for语句,来修改上面的程序段。


01 public class control5

02 {

03 public static void main(String[]args)

04 {

05 int x;

06 int n=10;

07 for(x=1;n>0;n—,x++)

08 {System.out.println(x);}

09 }

10 }


【代码说明】在这个程序段里,用第5~8行共4句代码完成了前面程序段里12句代码所解决的事情。【运行效果】


1 2

3 4

5 6

7 8

9 10


【实例4.9】如果前面的程序段中,需要连续加1加100次。则参考下面的程序段。


01 public class control6

02 {

03 public static void main(String[]args)

04 {

05 int x;

06 int n=100;

07 for(x=1;n>0;n—,x++){}

08 System.out.println(x);

09 }

10 }


【代码说明】在这个程序段里,使用第5~8行共4句代码可以解决前面程序段中12句代码所解决的问题,这就是循环语句的优势。

【运行效果】


101


下面详细地解释for循环语句中各个子项的意义。

❑初始化表达式:初始化表达式的意义,在于定义循环之前变量的值是多少,如果没有这一项,就不知道该从哪个值开始循环。

❑判断表达式:判断表达式的作用在于规定循环的终点。如果没有判断表达式,那么此循环就成了死循环。

❑递增(递减)表达式:这一项规定每执行一次程序,变量以多少增量或减量进行变化。

注意 一定要注意递增(递减)表达式中可以有多个表达式,它们以逗号间隔,而不是分号。

其实也可以利用在条件判断语句中提到的流程图来编写程序,在流程图中可以看出程序运行的顺序,如图4.4所示。

【实例4.10】下面再看一个九九乘法表的程序段。先来绘制流程图,如图4.5所示。

4.3 循环语句 - 图1

图 4.4 循环语句流程图

4.3 循环语句 - 图2

图 4.5 九九乘法表流程图

根据流程图,使用循环语句编写一个乘法口诀表。


01 ///这是一个多重for循环语句

02 public class control7

03 {

04 public static void main(String[]args)

05 {

06 for(int x=2;x<10;x++)

07 {

08 for(int y=1;y<10;y++)

09 {

10 System.out.print(x+""+y+"="+(xy));

11 System.out.print("");

12 }

13 System.out.println("");

14 }

15 }

16 }


【代码说明】第6~14行是外围的for循环,第8~12行是一个嵌入在外围循环中的循环,这样的我们称之为嵌套循环。为什么要使用两重循环呢?因为它涉及两个变化的量。在一个程序里,有多少个不同变量,就要使用多少个for循环,当然也不是非常绝对的。

【运行效果】


2 1=2 22=4 23=6 24=8 25=10 26=12 27=14 28=16 2*9=18

3 1=3 32=6 33=9 34=12 35=15 36=18 37=21 38=24 3*9=27

4 1=4 42=8 43=12 44=16 45=20 46=24 47=28 48=32 4*9=36

5 1=5 52=10 53=15 54=20 55=25 56=30 57=35 58=40 5*9=45

6 1=2 62=12 63=18 64=24 65=30 66=36 67=42 68=48 6*9=54

7 1=7 72=14 73=21 74=28 75=35 76=42 77=49 78=56 7*9=63

8 1=8 82=16 83=24 84=32 85=40 86=48 87=56 88=64 8*9=72

9 1=9 92=18 93=27 94=36 95=45 96=54 97=63 98=72 9*9=81


在上面的程序段中,使用了嵌套for语句。其实真正复杂的程序段中,可能会出现4个嵌套的for语句,这要在实践中慢慢体会。