While、do-while和for都是用来控制循环,有时将它们划分为迭代语句。语句会重复执行,直到起控制作用的布尔表达式得到结果时为止。
1、While循环语句格式如下:
while(布尔表达式){
//循环内容
}
在循环刚开始时,会计算一次布尔表达式的值;而在语句的下一次迭代开始前会再计算一次。
下面一个例子可产生随机数,直到符合特定条件为止:
public class WhileDemo {
private static boolean condition(){
boolean rs = Math.random() < 0.7;
System.out.print(rs + ",");
return rs;
}
public static void main(String[] args) {
while(condition()){
System.out.println("---");
}
System.out.println("******");
}
}
输出结果:
condition()方法用到了Math里的静态方法random(),该方法的作用是产生0和1之间(包括0,不包括1)的一个double值。rs的值是通过比较操作符“<”而得到它,这个操作符将产生boolean类型的结果。在打印boolean类型的值时,将自动地得到适合的字符串:true或false。该例子中的while的条件表达式表示的意思是:只要condition()方法返回true,就重复执行。
2、do-while语句格式如下:
do{
//代码语句
}while(布尔表达式)
while和do-while唯一的区别就是do-while中的语句至少会执行一次,即便表达式一次就被计算为fals。而在while循环中,如果条件第一次就为false,那么其中的循环的语句根本就不会执行,例子:
int i = 1;
int sum = 0;
do {
sum += i;
i++;
} while (i < 11);
System.out.println("do..while_1加到10的和为 " + sum);
输出结果:
3、for循环,在第一次循环之前要进行初始化,随后,进行条件测试,在每一次迭代结束时,进行条件的更新,格式如下:
for(初始化; 布尔表达式; 更新) {
//代码语句
}
初始化表达式,布尔表达式,或者更新运算,都可以为空。每次循环语句迭代前会测试布尔表达式。若获得的结果是false,就会执行for语句后面的代码行。每次循环结束,都是执行一次更新。
例子1:
int sum = 0;
for (int i = 1; i < 11; i++) {
sum += i;
}
System.out.println("1加到10的和为" + sum);
输出结果:
例子2:
for (char i = 0; i < 110; i++) {
if (Character.isLowerCase(i)) {
System.out.println("值:" + (int)i + "," + i);
}
}
输出结果:
注意:例子2中变量i是在for循环的控制表达式中被定义char的,i的作用域就是for控制的表达式的范围内
例子3,for循环创建九九乘法表:
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + j*i + "\t");
}
System.out.println();
}
输出结果:
该例子调用了两层for循环,第一层循环i变量用于控制行数,第二层循环j变量用于控制每行中参与计算的最大数值,与行数相等,然后再设置输出格式,控制排版对齐。
4、foreach语法:
Java5 引入了一种主要用于数组的增强型for循环。但需要注意一点:Java增强型for循 环只能取值,不能赋值,格式如下:
for(声明语句 : 表达式) {
//代码句子
}
例子:
int[] i = {1,2,3};
for (int j : i) {
System.out.print(j + ",");
}
System.out.println();
String[] str = {"A","B","C"};
for (String string : str) {
System.out.print(string + ",");
}
输出结果: