我是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;
}
答案 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;
}