假如我们需要打印一个字符串100次。就需要把输出语句重复写100遍,这是相当繁琐的,为了解决这个问题,Java提供了一种称为循环(loop)的结构,用来控制一个操作或操作序列重复执行的次数,使用循环语句时,只要简单告诉计算机输出字符串100次,就可以实现,如下所示:
int count = 0;
while(count<100){
System.out.println(“Welcome to Java!”);
count++;
}
变量count初值为0,循环检查(count<100)是否为true,如果为true,则执行循环体内的输出消息,然后给count+1,重复这个循环,直到count<100变为false,此时循环终止,循环是用来控制语句块重复执行的一种结构,Java提供了三种类型的循环语句:while,do-while和for。
1.while循环
while循环语句的语法:
while(循环继续条件){
语句(组);
}
2.do-while循环
do-while循环时while循环的变体。它的语法如下:
do{
语句(组);
}while(循环继续条件);
首先执行循环体,然后计算循环继续条件,如果计算结果为true,则重复执行循环体,如果为false,则终止do-while循环。
3.for循环
通常,for循环的语法如下所示:
for(初始操作;循环继续条件;每次迭代后的操作){
语句(组);
}
用一个for循环的例子来帮助大家理解:
for(int i =0;i<100;i++){
System.out.println(“Welcome to Java!”);
}
要注意,循环控制变量可以在for循环中声明和初始化,但必须在循环体内或者循环前说明,如果在循环控制结构体内声明变量,那么在循环外就无法引用它。
4.嵌套循环
嵌套循环是由一个外层循环和一个或多个内层循环组成的。每当重复执行一次外层循环时再次进入内部循环。我们使用嵌套for循环打印一个乘法表的程序。程序清单如下:我们在写清单之前,要先构思如何来做。
package multiplicationtable;
/**
*
* @author john
*/
public class MultiplicationTable {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println(” Multiplication Table”);
System.out.print(” “);
for(int j=1;j<=9;j++)
System.out.print(” “+j);
System.out.println(“\n——————————-“);
for(int i=1;i<=9;i++){
System.out.println(i+”|”);
for(int j=1;j<=9;j++){
System.out.printf(“%4d”,i*j);
}
System.out.println();
}
}
}
下方输出正确,程序正确,在这段代码中,用到了print和println的区别,前者不换行,后者换行,同时用到了for的嵌套循环,这要求我们逻辑思维清晰,在后面我们用到了printf,再用到printf的情况下,我们要定义后面输出的变量,用printf的原因是我们需要printf后面%4d填充的空格,来使得输出美观,%4d是输出宽度为4的整数的意思,如果宽度小于4前面将会用空格填充。我们可以用print直接输出,不过就没有空格,数字都挤在一起。
5.输入与输出重定向
如果我们要输入大量的数值,那么从键盘上输入是个很大的工作量,我们可以将这些数据用空格隔开,保存在一个名为input.txt的文本文件中,然后使用下面的命令运行这个程序:
java ClassName < input.txt (ClassName为你编译的程序的类名)
这个命令称为输入重定向,程序从文本文件中读取输入,而不是让用户再运行时从键盘输入数据。类似地,还有输出重定向,输出重定向将输出发给文件,而不是将它们显示在控制台上。
java ClassName > out.put.txt (ClassName为你编译的程序的类名)
我们可以在同一命令中同时使用输入重定向和输出重定向,例如,下面的命令从文件input.txt中获取输入,并将输出发给文件output.txt:
java ClassName < input.txt > output.txt
下一篇文章我们将学习关键字,以及用确认对话框来控制循环