循环
循环(loop)可以用于让一个程序重复地执行语句。
int count = 0;
while (count < 100){
System.out.println("Welcome to Java!");
count++;
}
while循环
while循环在条件为真的情况下,重复执行语句。
while(循环继续条件){
//循环体
语句(组);
}
这种使用一个控制变量count来执行次数计数的循环称为计数器控制的循环(counter-controlled loop)。
循环继续条件应该总是放在圆括号内。只有当循环体只包含一条语句或不包含语句时,循环体的花括号才可以省略。
要保证循环继续条件最终可以变成false,以便程序能够结束。一个程序常见错误是无限循环,如果你是从窗口运行程序的,按CTRL+C来结束。
另一种控制循环的常用技术是在读取和处理一个集合的值时指派一个特殊值。这个特殊的输入值也称为标记值,用以表达循环的结束。如果一个循环使用标记值来控制他的执行,他就称为标记位控制的循环。
public class SentinelValue {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer (the input ends if it is 0): ");
int data = input.nextInt();
int sum = 0;
while (data != 0){
sum += data;
System.out.println("Enter an integer (the input ends if it is 0): ");
data = input.nextInt();
}
System.out.println("The sum is "+ sum);
}
}
注意在循环控制中,不要使用浮点值来比较值是否相等。因为浮点值都是某些值得近似值,使用他们可能导致不精确的循环次数和不准确的结果,如下代码就是无限循环
double item = 1;
double sum = 0;
while (item != 0) {
sum += item;
item -= 0.1;
}
System.out.println(sum);
输入输出的重定向
如果要输入大量的数值,那么从键盘上输入时非常繁琐的事。可以将这些数据用空格隔开,保存在一个名为input.txt的文本文件中,然后使用下面的命令运行这个程序:
java SnetinelValue < input.txt
这个命令称为输入重定向(input redirection)。程序从文件input.txt中读取输入,而不是让用户在运行时从键盘输入数据。假设文件内容:
2 3 4 5 6 7 8 9 12 23 32
23 45 67 89 92 12 34 35 3 1 2 4 0 程序将得到sum值为 518。
类似地,还有输出重定向(output redirections),输出重定向将输出发送给文件,而不是显示在控制台上。命令为:
java ClassName > output.txt
do-while循环(与while循环相比,do-while循环需要先执行循环体一次,然后判断循环继续条件)
do{
//循环体
语句(组)
} while (循环继续条件);