Java 此条件的作用是什么(BufferredReader和InputStreamReader)?
我目前正在阅读一段代码,发现了一个如下开头的方法:Java 此条件的作用是什么(BufferredReader和InputStreamReader)?,java,bufferedreader,inputstreamreader,Java,Bufferedreader,Inputstreamreader,我目前正在阅读一段代码,发现了一个如下开头的方法: BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) != null) { } 有人能给我解释一下情况吗?那a=b!=c在我看来似乎很奇怪。你的眼睛好像在看一对括号: while ( (userInput = stdIn
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
}
有人能给我解释一下情况吗?那a=b!=c在我看来似乎很奇怪。你的眼睛好像在看一对括号:
while ( (userInput = stdIn.readLine() ) != null) {
}
我试图在上面把它说得更清楚
正在为变量userInput
赋值stdIn.readLine()
。虽然分配之后,userInput
不为空,但循环仍在继续
它只是一个用于处理
userInput
更新的单行程序,以及检查null
括号中的赋值(userInput=stdIn.readLine())
同时执行两件事:将行赋值给userInput变量,并将自身计算为该值。但如果未读取任何内容,则readLine()
返回null
,整个表达式的计算结果为null
因此,当用户输入中有行时,条件
(userInput=stdIn.readLine())!=null
保持不变,循环继续时。当用户输入中没有更多行时,条件为false,while循环停止。=
是赋值运算符,而不是比较运算符
(a=b)!=c
将b
的值赋给a
,然后将其与c
进行比较
就
while ((userInput = stdIn.readLine()) != null) { ... }
stdIn.readLine()。这将导致循环读取文件的每一行,直到文件的行数用完为止。类似于:
inta=0;
int b=0;
而((a=b++)!=10){
系统输出打印项次(a);
};
这里,我们以b
的增量指定a,并检查其值是否为10
同样地,userInput=stdIn.readLine()
意味着我们正在读取一行,将它分配给userInput
变量,并检查直到它读取null
啊,是的。谢谢:)