for(i;i<n;i++)
for(String s:slist)
while do
do while
iteratro
这些各在什么情况下用呢?

解决方案 »

  1.   

    for(i;i<n;i++)   //知道循环次数
    for(String s:slist)  //for以1递增时的简便用法
    while do            //知道循环结束条件
    do while            //和 while do 一样 只不过,它第一次循环会无条件执行
    iteratro              //不知道,
      

  2.   

    1.for:主要针对有限循环,也就是当循环的上限确定,一般使用for循环语句。
    2.while:先判断,在执行。针对无限循环的情况,也就是没有明确上限,根据程序条件而定。
    3.do...while:先执行,再判断。如果想先执行一次,在进行判断的话,可以使用这个。
    4.foreach:通常可以使用在数组和集合,是for的简化。全部遍历一次,输入其中的所有成员。如果想遍历多次,或者部分,就采用for循环。
    5。iterator:迭代器。在集合中比较常用。不过后期,可以用foreach代替。看你个人喜好啦~
      

  3.   

    是Iterator,注意单词。Iterator是迭代器,用于对集合遍历!for(String s:slist)是迭代器的简写方式,实现Collection接口的集合都可以使用Iterator迭代,也就是说都可以用上面说的for形式迭代!
      

  4.   

    for(i;i<n;i++)
    知道循环的起止数, 循环中需要用到不断递增/递减的变量
    for(String s:slist)
    叫foreach循环, 遍历数组/集合中元素用的 为了减少代码量
    while
    不知道确切的循环次数, 但知道循环结束条件时使用
    do while
    先执行一遍代码,再判断while条件是否成立
    iterator
    迭代器 用来遍历单值类型集合中元素的(与foreach循环功能相同) 无法直接new出对象必须用集合的iterator()方法获得
    iterator对象就3个方法:hasnext()   next()    remove()
    hasnext()返回boolean类型, 是否有下一个元素
    next()返回Object类型(其实是泛型), 指向下一个元素并返回这个元素
    remove()删除当前的元素
    例:
    while(it.hasNext()){
        Object o = it.next();
    }
      

  5.   

    对于80%的开发来讲,用哪个都无所谓,可是有些情况你需要注意:
    一、for(String s:slist)
    与iterator都是迭代模式,在遍历的时候不可以删除集合中的元素,不然会引起concurrentModificationException;
    二、假如你要实现“删除集合中由start位置到end位置的元素,并且不允许使用另外一个集合”,这时候for来的简单:
    public void removeIndex(int start,int end,List<String> list){
    for(int i=start;i<=end-start+1;i++){
    list.remove(start);
    }
    }
    三、在算法密集型开发中,通常需要判断堆栈、队列等特殊的集合是否为空或者为满,这时候,用:
    while(!stack.isEmpty()){
    //你需要的算法
    }
    还有:
    public static final int MAX=20;
    do{
    //你需要的算法
    }while(queue.size()<MAX);
    比较简单。