1

我的程序在 readLine 调用后卡住了,if 语句不起作用。我究竟做错了什么?#java-first-timer

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!");
        }
    }
}
4

2 回答 2

8

使用favNum.equals("3")而不是favNum == "3". 您几乎不应该使用==来比较对象;改为使用.equals。(有一些罕见的例外,但在您学习更多 Java 之前,您无需担心它们。)

于 2013-02-07T00:51:27.547 回答
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!");
        }
    }
}

希望我能帮上忙。

于 2013-02-07T01:02:57.110 回答