Java 循环语句精讲
2018-12-31 本文已影响1人
TryEnough
原文链接
Java 循环语句
你将学到
1、Java循环体的用法
2、循环退出语句 continue、 break、 return
3、常见的循环体的“坑”
4、如何选择循环体
正文
1、Java循环的用法
-
for
循环
//传统语法
for(初始化; 布尔表达式; 更新) {
//代码语句
}
//增强语法,For-Each循环
for(declaration : expression)
{
//Statements
}
-
while
和do…while
循环
while( 布尔表达式 ) {
//循环内容
}
do {
//代码语句
}while(布尔表达式);
例子:遍历数组
int[] data = {1, 2, 3, 4, 5};
//for 循环
for(int i = 0; i < 5; i++ ){
System.out.println( data[i] );
}
//for-each 循环
for(int t : data){
System.out.println(t);
}
//while 循环
int x = 0
while( x < 4 ) {
System.out.print("value of x : " + data[x] );
x++;
System.out.print("\n");
}
//do...while 循环
int x = 0;
do{
System.out.print("value of x : " + data[x] );
x++;
System.out.print("\n");
}while( x < 20 );
//迭代器循环
String[] strings = {"A", "B", "C", "D"};
Collection stringList = java.util.Arrays.asList(strings);
for (Iterator itr = stringList.iterator(); itr.hasNext();) {
Object str = itr.next();
System.out.println(str);
}
无限循环
for(;;){
//code to be executed
}
for(true){
//code to be executed
}
2、循环退出语句 continue、 break、 return
[ ] Break
终止当前循环;
[ ] Continue
结束本次循环,进入下一次循环;
[ ] return
结束程序,返回结果;
3、常见的循环体的“坑”
- For-Each循环的缺点:丢掉了索引信息
- 使用迭代器遍历元素的时候,在对集合进行删除的时候一定要注意,使用不当有可能发生ConcurrentModificationException,这是一种运行时异常,编译期并不会发生,例如:
//会抛出ConcurrentModificationException异常的代码
for (Student stu : students) {
if (stu.getId() == 2)
students.remove(stu);
}
//正确的在遍历的同时删除元素的姿势:
Iterator<Student> stuIter = students.iterator();
while (stuIter.hasNext()) {
Student student = stuIter.next();
if (student.getId() == 2)
stuIter.remove();//这里要使用Iterator的remove方法移除当前对象,如果使用List的remove方法,则同样会出现ConcurrentModificationException
}
4、如何选择循环体
- for循环结束,该变量就从内存中消失,能够提高内存的使用效率
- for循环适合针对一个范围判断进行操作
- while循环适合判断次数不明确操作
- 用 for-each 执行日常迭代,但对于迭代一个范围或跳过范围中的值等操作,使用 for