在这段代码中什么函数布尔值

时间:2017-07-03 12:25:56

标签: 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{


            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);

    }
}

为什么如果我将变量布尔读取值更改为true.While语句似乎无限循环。有人可以解释为什么?

2 个答案:

答案 0 :(得分:1)

这里读取的是布尔变量而不是函数。就像你有int,String,boolean是一个只有两个值为true或false的数据类型。最初,您将read指定为false。所以while循环至少执行一次。

while(!read) 

以上陈述已缩短,可按以下方式重写

while(read ==false)

两者都是一样的。 程序会继续读取字符,除非您输入一个数字&lt; -1或按Enter键(由\ n表示的新行),然后将read指定为true,并且while循环停止执行,因为上述条件不为真。

答案 1 :(得分:0)

System.in.read函数在文件结尾(或输入结束)返回-1。这意味着您的比较x < -1 永远不会为真。

您应该使用-1检查相等x == -1