for 循环 (JAVA) 内部的条件问题



我和我的一群朋友一起学习编程,我们严重陷入了一些乍一看很容易的东西。

基本上我们有一个运行一次的 for 循环。在里面,我们得到了一些用户输入。然后我们使用条件来确定我们是否应该将 +1 添加到计数 M(男性计数(或 +1 添加到计数 F(女性计数(。

问题 -> 问题出在条件上。当用户输入为"F"时,程序应该执行countF++(如果要求已满(,但是countM ++是每次执行的,即使用户输入是F而不是M。

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++

最新更新