Java If语句被忽略

Java If语句被忽略,java,if-statement,Java,If Statement,我正在做一个简单的媒人作为JAVA学习项目。到目前为止,我的程序只问了几个问题,但我想问一些针对性别的问题,所以我询问了他们的性别(m或f),然后试图添加一条信息,只显示性是m。对话应该说“干得好,你是男性!”。否则它将重新启动方法。每次,无论我键入什么,它都会重新启动程序 这是我的密码: import javax.swing.JOptionPane; public class Main { public static void main(String[] args){

我正在做一个简单的媒人作为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");
    }
}
试一试

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

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

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

您应该使用等于来比较字符串值,使用==来检查它们的引用

您的代码应该是:

if ("m".equals(sex)) {
  //
}
==比较对象的地址/引用
.equals比较对象的值

您的代码应该是:

if ("m".equals(sex)) {
  //
}
==比较对象的地址/引用
.equals比较对象的值

您的代码应该是:

if ("m".equals(sex)) {
  //
}
==比较对象的地址/引用
.equals比较对象的值

您的代码应该是:

if ("m".equals(sex)) {
  //
}
==比较对象的地址/引用

.equals比较对象的值

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

试试这个:

if(sex.equalsIgnoreCase("m") {
    ...
}
或者为了防止空值

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

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

试试这个:

if(sex.equalsIgnoreCase("m") {
    ...
}
或者为了防止空值

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

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

试试这个:

if(sex.equalsIgnoreCase("m") {
    ...
}
或者为了防止空值

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

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

试试这个:

if(sex.equalsIgnoreCase("m") {
    ...
}
或者为了防止空值

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

因为
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");
    }
}

因为
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");
    }
}

因为
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");
    }
}

因为
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");
    }
}

字符串应始终使用
equals()
方法进行比较。
“m”
sex
不同,即使
sex
的值为
“m”
。字符串比较应使用
equals()
(如上所述)进行,该方法比较相等性,而不是身份。字符串应始终使用
equals()
方法进行比较。
“m”
sex
不相同,即使
sex
的值为
“m”
。字符串比较应使用
equals()
(如上所述)进行,该方法比较相等性,而不是身份。字符串应始终使用
equals()
方法进行比较。
“m”
sex
不相同,即使
sex
的值为
“m”
。字符串比较应使用
equals()
(如上所述)进行,该方法比较相等性,而不是身份。字符串应始终使用
equals()
方法进行比较。
“m”
sex
不相同,即使
sex
的值为
“m”
。字符串比较应该使用
equals()
(如上所述)来完成,它比较的是相等性,而不是身份。它应该是
“m”.equals(sex)
,因为
sex
可能是
null
它应该是
“m”.equals(sex)
因为
可能是
空的
它应该是
“m”。等于(性)
因为
可能是
空的
它应该是
“m”。等于(性)
因为
可能是
空的