2 fevone fevone 于 2014.06.10 21:02 提问

[java初学]求教为什么这样写不能退出while循环
package io;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemIndemo {
    public static void main(String[] args) throws Exception{
        InputStream in = System.in;
        InputStreamReader reader = new InputStreamReader(in);
        BufferedReader br = new BufferedReader(reader);

        String str = null;
        while(str!="z"){
            str = br.readLine();
            System.out.println("Input :"+str);
        }
        System.out.println("The end.");
        br.close();
    }
}

为什么输入z回车之后while循环不会退出呢?

3个回答

luoyongsir
luoyongsir   2014.06.13 10:19
已采纳

String str = "";

while(!"z".equals(str) && str != null){
str = br.readLine();
System.out.println("Input :"+str);
}

这样写比较保险报吧。

jefferson5858
jefferson5858   2014.06.11 09:22

str!="z",判断字符串相等应该用equals

a864929684
a864929684   2014.06.11 10:16

一楼说的是对的,但是就算是用equals,也应该这么写,"z".equals(str),避免产生空指针。

Csdn user default icon
上传中...
上传图片
插入图片