我的程序在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!");
}
}
}
答案 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!");
}
}
}
希望我能提供帮助。