-4

ここで私のコードの何が問題なのかを理解しようとしています - ユーザー入力を濃度配列でチェックし、配列のいずれかに入力して肯定的な表示メッセージを出力する場合...ただし、「はい、入力に関係なく、毎回有効な濃度です。

import javax.swing.JOptionPane;
public class BASIT_Concentration_Check
{
    public static void main(String[] args) 
    {
        String[] concentrations = {"DTP","HCIT","INFS","NTEL","WDM"};
        String studentconcentration = getStudentConcentration();
        boolean concentrationvalid = isConcentrationValid(studentconcentration, concentrations);
        displayMessage(concentrationvalid);
    }

    public static String getStudentConcentration()
    {
        String studentconcentration = JOptionPane.showInputDialog(null,"What is your B.S. AIT Concentration?");
        return studentconcentration;
    }

    public static boolean isConcentrationValid(String studentconcentration, String [] concentrations)
    {
        boolean concentrationvalid=false;
        for (int i=0;i<concentrations.length;i++)
        {
            if (concentrations[i]==studentconcentration)
                {
                    concentrationvalid = true;
                }
        }
        return concentrationvalid;
    }

    public static void displayMessage(boolean concentrationvalid)
    {
        if (concentrationvalid==true)
        {
            JOptionPane.showMessageDialog(null, "Yes, that is a valid concentration");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"I'm sorry, that is not a valid concentration");
        }
    }
}
4

3 に答える 3

1

if (concentrations[i]==studentconcentration)

それはJavaで文字列を比較する方法ではありません!

代わりに使用if (concentrations[i].equals(studentconcentration))

基本的に、参照(またはプリミティブ==型の値)のみを比較します。この方法である理由の詳細な説明については、この質問を参照してください。

于 2013-11-02T02:08:40.380 に答える