我有一个echo文本Java代码。我无法理解其中一个陈述? 代码是: -
public class testing {
public static void main(String[] args) {
boolean isRedirect = false;
if(args.length != 0){
isRedirect = true;
}
int ch;
try{
while ((ch = System.in.read()) != ((isRedirect) ? -1 : '\n'))
System.out.print((char) ch);
}
catch(java.io.IOException ioe){
System.err.println("I/O Error");
}
System.out.println();
}
}
我知道代码会创建一个布尔值来检查输入是否来了。我知道while循环输出'(char)'转换为字符的整数,但我不明白while语句是如何做到这一点的。提前谢谢。
答案 0 :(得分:3)
while ((ch = System.in.read()) != ((isRedirect) ? -1 : '\n'))
具有与以下相同的效果:
do {
ch = System.in.read();
} while(ch != (isRedirect ? -1 : '\n'));
具有与以下相同的效果:
if(isRedirect) {
do {
ch = System.in.read();
} while(ch != -1);
} else {
do {
ch = System.in.read();
} while(ch != '\n');
}
希望可以理解。