大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip: for 循环 

在Java中所提供的重复性计算陈述之一是 for 循环式,它的基本语法如下:
for(初始变量; 判断式; 递增式) {
    陈述句一;
    陈述句二;
}

如果陈述句只有一个,也就是非复合陈述句,{ } 可以省略不写;for 循环的第一个初始变量陈述句只会执行一次,之后每次重新进行循环时,都会根据判断式来判断是否执行下一个循环,而每次执行完循环之后,都会执行递增式一次。

来看个简单的范例:

  •  SimpleForLoop.java
public class SimpleForLoop { 
public static void main(String[] args) {
for(int i = 0; i < 10; i++)
System.out.print(" " + i);
}
}

执行结果:
 0 1 2 3 4 5 6 7 8 9

简单的例子,但说明for的作用再适合不过,在Java中您可以直接在for中声明变量与指定初始值,这个声明的变量在 for循环结束之后也会自动消失;初始变量的陈述句只被执行一次,接下来循环会根据 i 是否小于10来判断是否执行循环,而每执行一次循环就将 i 加1。

for循环中也可以再使用for循环,大家很喜欢用的例子就是显示九九乘法表,这边就用这个例子来说明:

  • NineNineTable.java
public class NineNineTable {
public static void main(String[] args) {
for(int j = 1; j < 10; j++) {
for(int i = 2; i < 10; i++) {
System.out.printf("%d*%d=%2d ",i, j, i * j);
}
System.out.println();
}
}
}

执行结果:
2*1=  2 3*1=  3 4*1=  4 5*1=  5 6*1=  6 7*1=  7 8*1=  8 9*1=  9
2*2=  4 3*2=  6 4*2=  8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18
2*3=  6 3*3=  9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27
2*4=  8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36
2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45
2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54
2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63
2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72
2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

事实上,for循环的语法其实只是将三个复合陈述区块写在一个括号中而已,所不同的是第一个陈述区块只会执行一次,第二个陈述区块专司判断,而第三个陈述区块只是一般的陈述句,而不一定只放递增运算式。

for括号中的每个陈述区块是以分号(;)作区隔,而在一个陈述区块中若想写两个以上的陈述句,则使用逗号(,)作区隔,有兴趣的话,看看下面这个九九乘法表的写法,它只使用了一个for循环就可以完成九九乘法表的列印:

  • NineNineTable.java
public class NineNineTable { 
public static void main(String[] args) {
for (int i = 2, j = 1;
j < 10;
i = (i==9)?((++j/j)+1):(i+1)) {
System.out.printf("%d*%d=%2d%c", i, j, i * j,
(i==9 ? '\n' : ' '));
}
}
}

执行结果:
2*1=  2 3*1=  3 4*1=  4 5*1=  5 6*1=  6 7*1=  7 8*1=  8 9*1=  9
2*2=  4 3*2=  6 4*2=  8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18
2*3=  6 3*3=  9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27
2*4=  8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36
2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45
2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54
2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63
2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72
2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

这个程序的重点在于让您看看for循环的括号中之写法,当然原则上并不鼓励这么写,程序基本上还是以清楚易懂为原则,至于这个九九乘法表的演算其实也不难,当中的语法之前都介绍过了,您可以亲自演算看看就知道怎么回事了。