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.4 循环语句流程图
图 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语句,这要在实践中慢慢体会。