1

私のプログラムは、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!");
        }
    }
}
4

2 に答える 2

8

favNum.equals("3")の代わりに使用しfavNum == "3"ます。==オブジェクトを比較するために を使用することはほとんどありません。代わりに使用.equalsします。(まれな例外がいくつかありますが、Java をもう少し学習するまでは心配する必要はありません。)

于 2013-02-07T00:51:27.547 に答える
2

文字列を比較するために使用します...実際には、文字列の比較にコンパレータをfavNum.equals("3")使用する必要がある場合はほとんどありません。==

2番目の提案として、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 に答える