黑马程序员技术交流社区
标题:
关于在while括号中的赋值问题????
[打印本页]
作者:
Ysfox
时间:
2013-7-1 20:04
标题:
关于在while括号中的赋值问题????
我想读取一个文件
正确写法是这样:
import java.io.*;
class FileReaderTest
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("FileWriterAgain.java");
char[] arr = new char[1024];
int len =0;
while((len=fr.read(arr))!=-1)
{
System.out.print(new String(arr,0,len));
}
fr.close();
}
}
复制代码
错误写法这样:
import java.io.*;
class FileReaderTest
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("FileWriterAgain.java");
char[] arr = new char[1024];
while((int len = fr.read(arr))!=-1)
{
System.out.println(new String(arr,0,len));
}
fr.close();
}
}
复制代码
问题:我想问为什么第二种写法是错误的??
作者:
liujkh123
时间:
2013-7-2 08:43
while里面定义的变量是在含有while语句所在方法执行结束的时候才释放,所以用while来定义变量类型和名字就会每次循环就定义一次,而且变量名还是一样,就会出错了。
用代码表示就是相当于
循环一次
(int len = fr.read(arr))!=-1
循环两次
(int len = fr.read(arr))!=-1
(int len = fr.read(arr))!=-1
循环三次
(int len = fr.read(arr))!=-1
(int len = fr.read(arr))!=-1
(int len = fr.read(arr))!=-1
复制代码
所以楼主应该看出来错在哪里吧
作者:
Ysfox
时间:
2013-7-2 10:46
Thank You !
作者:
Just_Only
时间:
2013-7-2 12:57
看回答问题已经解决,我把帖子改成已解决,如果还没有解决,请联系我。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2