美文网首页Java 杂谈
Java 循环语句精讲

Java 循环语句精讲

作者: TryEnough | 来源:发表于2018-12-31 16:43 被阅读1次

    原文链接


    Java 循环语句


    你将学到

    1、Java循环体的用法

    2、循环退出语句 continue、 break、 return

    3、常见的循环体的“坑”

    4、如何选择循环体

    正文

    1、Java循环的用法

    • for 循环
    //传统语法
    for(初始化; 布尔表达式; 更新) {
        //代码语句
    }
    
    //增强语法,For-Each循环
    for(declaration : expression)
    {
       //Statements
    }
    
    • whiledo…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

    相关文章

      网友评论

        本文标题:Java 循环语句精讲

        本文链接:https://www.haomeiwen.com/subject/zshwlqtx.html