当前位置: 代码迷 >> Java相关 >> 循环出了点问题
  详细解决方案

循环出了点问题

热度:119   发布时间:2011-10-27 16:36:40.0
循环出了点问题
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String s=null;
for(int i=0;(s=br.readLine())!=null;i++)
{
    System.out.println("第"+(i+1)+"行:"+s);
}
br.close();
fr.close();
上面这段程序输出结果是正确的,问题是,我把循环改成像下面这样就死循环了!为什么?
String s=br.readLine();
for(int i=0;s!=null;i++)
{
     System.out.println("第"+(i+1)+"行:"+s);
}
搜索更多相关的解决方案: null  

----------------解决方案--------------------------------------------------------
String s=br.readLine();   
for(int i=0;s!=null;i++)
{
     System.out.println("第"+(i+1)+"行:"+s);
}


这里的String s=br.readLine();在循环外面,之执行了一次。永远不会等于null,所以肯定是循环了。


我觉得是这样,我也是初学者。
一起等等牛人的解答
----------------解决方案--------------------------------------------------------
以下是引用木头lbj在2011-10-28 19:25:02的发言:

String s=br.readLine();     
for(int i=0;s!=null;i++)
{
     System.out.println("第"+(i+1)+"行:"+s);
}


这里的String s=br.readLine();在循环外面,之执行了一次。永远不会等于null,所以肯定是循环了。


我觉得是这样,我也是初学者。
一起等等牛人的解答
就是这么回事
  输出br.readLine()的时候不会用for
int i=0;
String s=null;
while((s=br.readLine())!=null){
     System.out.println("第"+(i+1)+"行:"+s);
}
----------------解决方案--------------------------------------------------------
BufferedReader类型的 很少用for来控制,,多用while。。
----------------解决方案--------------------------------------------------------
  相关解决方案