用Java操纵数组。坚持艰苦的家庭作业任务

时间:2012-08-17 02:50:47

标签: java arrays

我是Java的新手,我在本学期的编程课程中学习它。我们有一份家庭作业,我正在努力。我很欣赏这对那些经验丰富的程序员来说很容易,但对我来说这是一个令人头疼的问题。这是第一个问题。

  
    

public int countInRange(int [] data,int lo,int hi)

         

为此,您必须计算数组的元素数量,数据位于>> lo到hi的范围内,并返回计数。例如,如果数据是数组{1,3,2,5,8}>>那么调用

         

countInRange(数据,2,5)

         

应返回3,因为有三个元素,3,2和5位于范围2 .. 5。

  

这就是我到目前为止所做的事情:

/**
 * Count the number of occurrences of values in an array, R, that is
 * greater than or equal to lo and less than or equal to hi.
 *
 * @param  data  the array of integers
 * @param  lo   the lowest value of the range
 * @param  hi   the highest value of the range
 * @return      the count of numbers that lie in the range lo .. hi
 */
public int countInRange(int[] array, int lo, int hi) {
    int counter = 0; 
    int occurrences = 0;
    while(counter < array.length) {
        if(array[counter] >= lo) {
            occurrences++; 
        }
        counter++;
    }
    return occurrences;
}

4 个答案:

答案 0 :(得分:6)

if(array[counter] >= lo && conditionforhighcheck)
{
//Then only update occurence count
}

由于作业,我没有输入代码。我给了一个指针。

答案 1 :(得分:1)

你错过了if语句中的上限检查。

答案 2 :(得分:1)

for ( int i = 0; i < array.length; i++ ) {
    if ( array[i] >= lo && array[i] <= hi ) {
        occurrences++;
    }
}

使用for语句迭代数组。

答案 3 :(得分:1)

使用java中的数组和集合,你可以使用foreach loop,特别是当你在学习时,“更少的代码”(通常)更容易理解,因为剩下的代码只是重要的东西

另一方面,如果你想构建自己的循环,总是使用for循环 - 在while循环中更新循环变量(当它不需要时)被认为是不好的风格,因为它会导致讨厌的错误。

答案很简单,很难让你从神秘的暗示中解决这个问题:

public int countInRange(int[] array, int lo, int hi) {
    int occurrences = 0;
    for (int element : array) {
        if (element >= lo && element <= hi) {
            occurrences++;
        }
    }
    return occurrences;
}