我和我的一群朋友一起学习编程,我们严重陷入了一些乍一看很容易的东西。
基本上我们有一个运行一次的 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++