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 objectIf
System.in.read()
失败或返回换行符,您应该将失败值或换行符添加到字符串
s
?你现在就这么做。如果我打印x变量。结果是int,但是很好。但是,当我将read变量值更改为true时,输入流将不会读取。你确定得到的是一个无限循环吗?在我看来,如果您将
main
的第二行更改为
boolean read=true
然后您的程序将快速退出,没有任何可见的输出。也许这就是发生在你身上的事情。也许你应该学习如何使用调试器。使用调试器,您可以在监视变量及其值的同时逐行检查代码。非常感谢您的解释