Java while循环有助于计算用户偶数的频率

时间:2016-11-02 22:47:20

标签: java numbers

我试图解决的问题如下:“从用户读入数字,直到用户输入-1,并计算用户偶数的频率”。

我完成了第一部分,似乎运行正常。但我无法完成第二部分,我从用户那里计算偶数的频率。

我复制了迄今为止所做的工作,但我正在寻求帮助来完成它。我很感激任何人的帮助。

import javax.swing.JOptionPane;

public class Ex2Ass2ParC {
    public static void main(String[] args){
        String dataString = JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
        int data = Integer.parseInt(dataString);
        int count = 0;

        while(data!=-1){
            count++;

            dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
            data=Integer.parseInt(dataString);

        }
    JOptionPane.showMessageDialog(null, "The frequency of numbers is"+count);

        }
    }
}

2 个答案:

答案 0 :(得分:0)

为了计算某种数字的频率,您需要计算输入的这些数字的数量,以及您已经拥有的数字总数。

添加一个单独的计数器,并在每次tools时递增,这表示解析的数字是偶数:

data % 2 == 0

在循环结束时,将偶数除以总计数。确保在执行除法之前将第一个计数转换为int count = 0; int even = 0; while(data!=-1){ count++; dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)"); data=Integer.parseInt(dataString); if (data % 2 == 0) { even++; } } ,否则您将获得整数除法,从而得到零或一。

答案 1 :(得分:0)

添加if语句以检查数字是否均匀,而不是每次只通过执行以下操作添加计数:

if (data % 2 == 0) {
    count++;
}

所以用上面的语句替换count++

编辑

如果按频率表示百分比,则需要创建第二个局部变量来跟踪给定的总数量

double totalNumbers = 0.0;
while(data!=-1){
        totalNumbers++;
        if (data % 2 == 0) {
            count++;
        }

        dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
        data=Integer.parseInt(dataString);

    }

然后将对话框更改为JOptionPane.showMessageDialog(null, "The frequency is: " + (count/totalNumbers));