现在开始介绍跟变成有密切关系的Java语法,首先来介绍循环的写法。
首先我们来介绍最简单的while循环。
很简单的循环写法,用英文直译就是当condition为真的时候,持续走循环体内部的方法,知道condition变为false才终止。
上面的例子会在while循环里面累加i,当i加到10就会退出循环。
上面的例子里面我们使用了关键字break,它让我们可以跳出它的所在循环体外面。所以上例当System.out.println()执行完之后方法体就终止了。
但是要注意,用while循环是很容易出现死循环的。因为while本来就是用于实现不确定次数的循环时使用的循环写法。
所以,比较理想的方式应该像i 累加的那种例子,限制循环的次数。由此我们就有了for循环:
for循环的括号里面分三部分:
[list]
[*]variables 定义循环体内临时使用到的变量,可以在里面对变量进行初始化
[*]condition 循环体执行条件
[*]runafter 在循环体成功执行完一次之后会执行的代码片段。
[/list]
以下是一个具体的使用实例:
上面就是对for循环的经典应用。其等价于:
虽然说for是可以限制循环次数,但是使用不当还是会有死循环的情况哦。比如说:
在上一个例子里面,我们在循环体改变了i的值,这样i每轮循环,首先自减1,然后自加1,就是原地踏步没有变化过,所以是永远不可能满足i<10的条件的。
所以如果你把for循环的条件判断值在循环体内修改将非常危险,而且我们也不建议这样做。另外一种经常会导致出错的做法:
上例中,当执行第二个for循环,由于list.size()在不断变话,而且i无视了list的指针移位而一味地自加1,最后导致list的内容没有像预期那样被遍历。
大家不妨研究一下正确的做法。
顺带说一下,for的三个空格不填任何东西也是可以的,而且condition不填东西就视为填了true,即
等价于
另外还有for循环的变体写法及do while循环,以及break和continue关键字的用法,留待继续。。。
首先我们来介绍最简单的while循环。
while(condition)
{
//your loop code here
}
很简单的循环写法,用英文直译就是当condition为真的时候,持续走循环体内部的方法,知道condition变为false才终止。
int i=0;
while(i<10)
{
i= i + 1;
}
上面的例子会在while循环里面累加i,当i加到10就会退出循环。
while(true)
{
System.out.println("I'll only run once!");
break;
}
上面的例子里面我们使用了关键字break,它让我们可以跳出它的所在循环体外面。所以上例当System.out.println()执行完之后方法体就终止了。
但是要注意,用while循环是很容易出现死循环的。因为while本来就是用于实现不确定次数的循环时使用的循环写法。
所以,比较理想的方式应该像i 累加的那种例子,限制循环的次数。由此我们就有了for循环:
for(variables;condition;runafter)
{
//loop code here
}
for循环的括号里面分三部分:
[list]
[*]variables 定义循环体内临时使用到的变量,可以在里面对变量进行初始化
[*]condition 循环体执行条件
[*]runafter 在循环体成功执行完一次之后会执行的代码片段。
[/list]
以下是一个具体的使用实例:
for(int i=0;i<10;i=i+1)
{
//loop code that will run 10 times
}
上面就是对for循环的经典应用。其等价于:
int i=0;
while(i<10)
{
//loop code that will run 10 times
....
i=i+1;
}
虽然说for是可以限制循环次数,但是使用不当还是会有死循环的情况哦。比如说:
for(int i=0;i<10;i=i+1)
{
i = i -1;
//dead loop...
}
在上一个例子里面,我们在循环体改变了i的值,这样i每轮循环,首先自减1,然后自加1,就是原地踏步没有变化过,所以是永远不可能满足i<10的条件的。
所以如果你把for循环的条件判断值在循环体内修改将非常危险,而且我们也不建议这样做。另外一种经常会导致出错的做法:
java.util.ArrayList<Integer> list = new java.util.ArrayList<Integer>();
//初始化list
for(int i=0;i<10;i=i+1)
list.add(i);
//该循环会正常完成,但是却没有执行10次,而且list的内容也没有完全清空
for(int i=0;i<list.size();i=i+1)
list.remove(i);
上例中,当执行第二个for循环,由于list.size()在不断变话,而且i无视了list的指针移位而一味地自加1,最后导致list的内容没有像预期那样被遍历。
大家不妨研究一下正确的做法。
顺带说一下,for的三个空格不填任何东西也是可以的,而且condition不填东西就视为填了true,即
for(;;)
{
//forever loop
}
等价于
while(true)
{
....
}
另外还有for循环的变体写法及do while循环,以及break和continue关键字的用法,留待继续。。。