本帖最后由 dslpk 于 2011-09-18 16:49:25 编辑

解决方案 »

  1.   

    问题代码是这两句:if(i == 3) low = it.next();
                    if(i == 6) high = it.next();
      

  2.   

     if(i == 3) low = it.next();
     if(i == 6) high = it.next();
      else it.next();单独看看不出问题的 连在一起再看,
    如果这个顺序在                          如果调换顺序
    i==1 next                                   i==1 next
    i==2 next                                   i==2 next
    i==3 next next                           i==3 next
    i==4 next                                   i==4 next
    i==5 next                                   i==5 next
    i==6 next                                   i==6 next next
      

  3.   

    ...kao 中间的空格全被过滤了
    大致就是i==3那里会多出一次next
      

  4.   

    i=3时,不仅走了i==3的分支,也走了i==6的else分支,所以i=3时next走了两次。
      

  5.   

    else匹配问题:if(i==6)在上面时,和if(i==3)匹配,故it.next执行一次
                   if(i==3)在上面时,和if(i==6)匹配,故it.next执行两次