This question already has answers here:
How do I compare strings in Java?
                                
                                    (23个答案)
                                
                        
                2年前关闭。
            
        

我和一群朋友一起学习编程,我们被一眼看上去很简单的东西所困扰。

基本上,我们有一个for循环,可以运行一次。在内部,我们得到一些用户输入。然后,我们使用一个条件来确定是否应将+1添加到countM(男性计数)或+1添加到countF(女性计数)。

问题->问题来自条件句。当用户输入为“ F”时,程序应执行countF ++(如果要求已满),但是即使用户输入为F而不是M,countM ++也是执行一次。

public static void main(String[] args) {

    int countM = 0;
    int countF = 0;

    int peso;
    int estatura;
    String sexo;


    for (int i = 1; i <= 2; i++) {


        if(i == 2){
          JOptionPane.showMessageDialog(null, "El nº de chicos aptos es " + countM);
          JOptionPane.showMessageDialog(null, "El nº de chicas aptas es " + countF);
          break;
        }

        JOptionPane.showMessageDialog(null, "Teclea los datos del alumno nº "+ i);


        estatura = Integer.parseInt(JOptionPane.showInputDialog("Teclea la estatura del alumno (cm)"));
        peso = Integer.parseInt(JOptionPane.showInputDialog("Teclea el peso del alumno en kg"));
        sexo = JOptionPane.showInputDialog("Teclea el sexo del alumno (M o F)");



        if(sexo == "F"){
            if(estatura>160 && peso>60){
            countF++;
            }
        }

        else{
            if(estatura>170 && peso>70){
            countM++;
            }
        }
    }
}

最佳答案

使用sexo.equalsIgnoreCase("f");代替sexo=="f"

并添加一项检查,确认用户仅输入M或F,否则仍会执行CountM++

09-30 17:03