比较数组中的元素[JAVA]

时间:2013-11-19 22:04:12

标签: java arrays joptionpane

我想问一下,如何比较数组中的所有元素以获取BIG int然后显示它..

继承人代码..

import javax.swing.*;
public class compare {

public static void main(String[] args) {


    int num[]=new int[10];

    for(int x=0;x<num.length;x++){
        num[x]=Integer.parseInt(JOptionPane.showInputDialog("Enter"));
    }

    for(int c=0;c<num.length;c++){
        if(num[c]>num[c])
        {

        }

    }



    }

}

现在,继续我的新代码。

但是,它不会比较输入的数字

for(int c=0;c<num.length;c++){
        if(num[c]>num[c])
        {
            int large=num[c];
            JOptionPane.showMessageDialog(null, "the largest num "+large);
        }

2 个答案:

答案 0 :(得分:1)

您的代码中存在一些问题。

if(num[c] > num[c])

将检查位置c的值,并始终为false。您需要将num[c]的值与您目前看到的最高值进行比较。

int large = num[c];
JOptionPane.showMessageDialog(null, "the largest num "+large);

你在循环中声明large,这意味着对于每次迭代(你输入if条件,你没有,但是假设你这样做)你声明并分配一个 new 名为large的变量,并为其赋值num[c]。该对话框也在循环内显示,这可能导致它对不同的值显示多次。

所以你需要一个变量来保持我们到目前为止看到的最大值并在循环中使用这个变量:

int max = num[0]; 
for(int c = 1; c < num.length; c++) { 
    if(max < num[c]) {
        max = num[c];
    }
}

由于max等于num中索引0处的值,我可以从索引1开始循环。 请尝试了解 的原因。

完成此操作后,您拥有num变量中max的最大值,您可以显示对话框。

JOptionPane.showMessageDialog(null, "the largest num " + max);

答案 1 :(得分:1)

你需要跟踪到目前为止找到的最大的一个,因为你需要比较其他所有内容。

做类似的事情;

int biggest = 0;
for(int c=0;c<num.length;c++){
        if(//Some conditional)
        {
            biggest = //Something
        }
    }

我认为你应该弄清楚我有什么评论。