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

标签 java for-loop conditional-statements

我正在和我的一群 friend 一起学习编程,我们被一些乍一看很简单的东西所困扰。

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

问题 -> 问题出在条件句上。当用户输入为“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++

关于java - for 循环内的条件问题 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52714884/

相关文章:

java - 这个@Override for Arrays.sort 在 Java 中如何工作?

javascript - 修改后的deepEqual函数不起作用

Java除法循环

javascript - JavaScript 或 Angular4 中奇怪的三元条件

c - 如何检查if语句中的两个条件?

c++ - xtensor xt::where与索引相关的功能出现问题

java - 使用另一个 JPanel 中的 JPanel 在按钮单击时创建弹出窗口

c# - Java 和 C# 中的编译时与运行时

javascript - 在 SPRING MVC 中使用 JSON 发出 POST 请求的正确方法?

Javascript 检查对象值的总和是否等于 0