BufferedReader.readLine不起作用

时间:2013-02-07 00:50:19

标签: java

我的程序在readLine调用之后被卡住了,if语句不起作用。我究竟做错了什么? #java的第一定时器

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;


public class nums {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));               
        System.out.println("Number Mania!!!");
        System.out.println("Pick your favourite number from 1 to 5");
        String favNum = br.readLine();
        if (favNum=="3"){
            System.out.println("Your favourite number is three!");
        }
        else{
            System.out.println("hi!");
        }
    }
}

2 个答案:

答案 0 :(得分:8)

使用favNum.equals("3")代替favNum == "3"。你几乎不应该使用==来比较对象;请改用.equals。 (有一些罕见的例外情况,但在学习更多Java之前,您不必担心它们。)

答案 1 :(得分:2)

使用favNum.equals("3")比较字符串......实际上,很少有情况下你应该使用==比较器进行字符串比较。

作为第二个建议,您应该考虑开始使用java.util.Scanner类。你的代码可能是这样的:

import java.util.Scanner;

public class nums {
    public static void main(String[] args) {
        Scanner scann = new Scanner(System.in);               
        System.out.println("Number Mania!!!");
        System.out.println("Pick your favourite number from 1 to 5");
        int favNum = scann.nextInt();
        if (favNum == 3){
            System.out.println("Your favourite number is three!");
        }
        else{
            System.out.println("hi!");
        }
    }
}

希望我能提供帮助。