1

好的,我有这个程序可以输入个位数 0-9。然后它计算每个数字出现的次数与输入的数字总数相比,并将每个数字出现的次数存储在 timesOccured[] 数组中。值是数字出现的次数,索引是数字,所以如果 timesOccured[1] == 15,则 1 出现了 15 次。

我有一个名为 minimumCommonNumbers 的 ArrayList,它是 4 个最不常见的数字的列表。然后,我有一个名为RecommendedNumbers 的ArrayList,它是四个leastCommonNumbers 中的三个的四种可能组合。

这里的一切工作正常,除了没有生成 ArrayList RecommendedNumbers ......它必须是某种逻辑缺陷,但我无法弄清楚它为什么不工作......这是声明:

List<Integer> leastCommonNumbers = new ArrayList();
List<String> recommendedNumbers = new ArrayList();
double timesOccured[]={0,0,0,0,0,0,0,0,0,0}

这是代码:

double[] nums = timesOccured;
        double temp;
        int temp2;
        leastCommonNumbers.clear();
        recommendedNumbers.clear();

        for(int al = 0; al<nums.length;al++){
            for(int al2 = 0;al2<nums.length-1;al2++){
                if(nums[al2] > nums[al2+1]){
                    temp = nums[al2];
                    nums[al2]=nums[al2+1];
                    nums[al2+1]=temp;
                }}}
        for(int b = 0; b ==3;b++){
            for(int r = 0; r<nums.length; r++){
            if(nums[b] == timesOccured[r]){
                leastCommonNumbers.add(r);
            }}}


        for(int y = 0; y == 3; y++){
            int t = 0;
            recommendedNumbers.add(String.valueOf(leastCommonNumbers.get(t))+String.valueOf(leastCommonNumbers.get(t+1))+String.valueOf(leastCommonNumbers.get(t+2)));
            temp2 = leastCommonNumbers.get(0);
            for(int a = 0; a == 3; a++){
                if(a < 3){

                    leastCommonNumbers.set(a, leastCommonNumbers.get(a+1));
                }else{
                    leastCommonNumbers.set(a, temp2);
                }}}

timesOccured 被初始化为全 0,并在整个程序运行过程中发生变化。当我在运行此程序后尝试使用推荐编号时,我收到一个错误,即推荐编号的大小为 0,即没有值。

如此迷茫...

4

1 回答 1

2

您的for循环条件始终为 false :

for(int b = 0; b == 3;b++){
...
for(int y = 0; y == 3; y++){

所以循环永远不会被执行。我猜你想<=改用:

for(int b = 0; b <= 3;b++){
...
for(int y = 0; y <= 3; y++){
于 2013-09-02T18:33:18.903 回答