Java 这段代码中的布尔函数是什么
我不明白我的代码中有什么布尔函数。这是我的代码:Java 这段代码中的布尔函数是什么,java,Java,我不明白我的代码中有什么布尔函数。这是我的代码: import java.io.*; class Example { public static void main(String [] args){ String s=""; boolean read=false; int x; System.out.println("Enter your name:"); try{
import java.io.*;
class Example {
public static void main(String [] args){
String s="";
boolean read=false;
int x;
System.out.println("Enter your name:");
try{
while(!read){
x=System.in.read();
if(x < -1 || x == '\n')
read=true;
s=s + (char)x;
}
}catch(IOException io){
System.err.println(io.getMessage());
}
System.out.println(s);
}
}
import java.io.*;
课例{
公共静态void main(字符串[]args){
字符串s=“”;
布尔读取=假;
int x;
System.out.println(“输入您的姓名:”);
试一试{
而(!read){
x=系统中的读取();
如果(x<-1 | | x=='\n')
读=真;
s=s+(字符)x;
}
}捕获(io异常){
System.err.println(io.getMessage());
}
系统输出打印项次;
}
}
为什么如果我把变量boolean read value改为true。While语句似乎是无限循环。有人能解释为什么吗?这里read是一个布尔变量,而不是一个函数。就像int、String一样,boolean是一种只有两个值true或false的数据类型。最初,您将read指定为false。因此while循环至少执行一次
while(!read)
上面的语句被缩短,可以改写如下
while(read ==false)
两者都是一样的。
除非输入数字<-1或按enter键(新行由\n表示),否则程序将继续读取字符,然后将read赋值为true,并且当上述条件不为true时,while循环停止执行。函数在文件结尾(或输入结尾)返回-1
。这意味着你的比较x<-1
永远不会是真的
您应该检查是否与
-1
相等:x==-1
您应该使用Scanner objectIfSystem.in.read()
失败或返回换行符,您应该将失败值或换行符添加到字符串s
?你现在就这么做。如果我打印x变量。结果是int,但是很好。但是,当我将read变量值更改为true时,输入流将不会读取。你确定得到的是一个无限循环吗?在我看来,如果您将main
的第二行更改为boolean read=true
然后您的程序将快速退出,没有任何可见的输出。也许这就是发生在你身上的事情。也许你应该学习如何使用调试器。使用调试器,您可以在监视变量及其值的同时逐行检查代码。非常感谢您的解释