1、while和do/while循环
当条件为true时,while循环执行一条语句(也可以是一个块语句)。一般形式如下
while(condition) statement
如果开始时循环条件的值就为false,那么while循环一次也不执行。
下面是一个while循环示例,计算多长时间才能攒够一定数量的退休金:
while(balance < goal)
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
years++;
}
System.out.println(years + "years.")
while循环语句在最前面检测循环条件。因此,循环体中的代码可能一次都不执行。如果希望循环体至少执行一次,需要使用do/while循环将检测放在最后。它的语法如下:
do statement while (condition);
这种循环语先执行语句(通常是一个语句块),然后再检测循环循环条件。如果为true,就重复执行语句,然后再检测循环条件,以此类推。下面是计算退休账户中新的余额,然后再询问是否退休:
do
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
year++;
}
while(input.equals("N"));
只要用户回答”N“,循环就重复执行。这是一个需要至少执行一次循环的很好的例子,因为用户必须先看到余额才能知道是否满足退休所用。
for循环
for循环语句是支持迭代的一种通用结构,由一个计数器或者类似的变量控制器迭代次数,每次迭代后这个变量将会更新。
for循环语句的第一部分通常是对计数器进行初始化;第二部分给出每次新一轮循环执行前要检测的训话条件;第三部分指定如何更新计数器。
警告:在循环中,检测两个浮点数是否相等需要格外小心。下面的for循环
for(double x = 0; x != 10;x += 0.1)…
可能永远都不会结束。由于舍入的误差,可能永远都达不到精确的最终值。例如,在上面的循环中,因为0.1无法精确地用二进制表示,所以,x将从9.99999999999998跳到10.9999999999998.
for循环需要注意的点:
1、当在for语句的第一部分声明了一个变量后,这个变量的作用域就扩展到了这个for循环体的末尾。
for(int i = 1; i <= 10; i++)
{
...
}
// i 在循环外不在被定义
2、如果想要for循环体外使用循环计数器的最终值,就要确保这个值在循环外声明!
int i;
for(i = 1; i <= 10; i++)
{
...
}
// i 在循环外依旧被定义
3、可以在不同的for循环中定义同名变量
for(int i = 1; i <= 10; i++)
{
...
}
for(int i = 11; i <= 20; i++)
{
...
}
4、for循环的判断顺序
第一步,定义并且初始化循环计数器,第二步,判断循环计数器是否满足循环条件,满足则执行循环语句块,第三步,对循环计数器进行更新操作,第四步,再次判断循环计数器是否满足循环条件。以此类推
int i;
for(i = 0; i < 10; i++)
{
}
System.out.println(i);// 这个i在for循环后的值为10,因为i = 9时执行完语句块后i又进行了一次++,不满足条件跳出循环,此时i等于10