如果语句被忽略

时间:2013-10-19 15:42:43

标签: java if-statement

我正在制作一个简单的媒人作为JAVA的学习项目。到目前为止,我的计划只是提出几个问题,但我想做性别问题,所以我询问了他们的性别(m或f)然后尝试添加一条信息,只显示性别是m。对话框应该说“做得好,你是男性!”。否则重启方法。每次,无论我输入什么,它都会重新启动程序。

这是我的代码:

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args){
        setVars();
    }

    public static void setVars(){
        String name = JOptionPane.showInputDialog(null, "What is your name?");
        String sAge = JOptionPane.showInputDialog(null, "What is your age?");
        String sex = JOptionPane.showInputDialog(null, "What is your sex?\n(Enter  m or f)");

        if (sex == "m"){
            JOptionPane.showMessageDialog(null, "Well done, you are male.\nKeep Going!");
        }
        int age = Integer.parseInt(sAge);
        String chars = JOptionPane.showInputDialog(null, "Name three charectaristics");
    }
}

4 个答案:

答案 0 :(得分:1)

if ( "m".equalIgnoreCase(sex))

你应该使用equals比较字符串值和==来检查它们的引用

答案 1 :(得分:1)

您的代码应为:

if ("m".equals(sex)) {
  //
}

==比较对象的地址/引用
.equals比较对象的值

答案 2 :(得分:1)

在Java中,您不会将字符串与==进行比较,您必须将它们与equals()上的String方法进行比较。 String有两种此方法的变体:equals(),区分大小写,equalsIgnoreCase(),不区分大小写。在下面的示例中,您可以使用其中任何一个。

试试这个:

if(sex.equalsIgnoreCase("m") {
    ...
}

或防止空值......

if("m".equalsIgnoreCase(sex)) {
    ...
}

答案 3 :(得分:0)

因为String是一个对象,而不是int这样的数据类型,在比较两个字符串时,它是由.equals()方法完成的:

package example;

import javax.swing.JOptionPane;
public class Main {
    public static void main(String[] args){
        setVars();
    }
    public static void setVars(){
        String name = JOptionPane.showInputDialog(null, "What is your name?");
        String sAge = JOptionPane.showInputDialog(null, "What is your age?");
        String sex = JOptionPane.showInputDialog(null, "What is your sex?\n(Enter  m or f)");
        if (sex.equals("m")){
            JOptionPane.showMessageDialog(null, "Well done, you are male.\nKeep Going!");
        }
        int age = Integer.parseInt(sAge);
        String chars = JOptionPane.showInputDialog(null, "Name three charectaristics");
    }
}