发现如果某个值在范围内的Java(Finding out if a certain value is

2019-10-30 12:20发布

我在Java编程很新,我试图完成这个包,但我似乎没有得到它的权利。 我需要找到是我所说的对象是在范围,例如,如果我有行0至3且将列1〜2在其上调用方法INRANGE与该范围内的DataEntry对象具有行= 2,列= 1时,它应该返回true,作为行(2)是0和3之间和所述塔(1)是(1,2)之间。 我已经尝试了不同的代码和当前代码我已经是我想什么是最好的选择,但是,它给我的错误,当我进行测试。 如果我有的DataEntry条目=新的DataEntry(2,4,8.88); 那么它应该为(entry.inRange(3,5,2返回true,4)返回真(entry.inRange(5,4,2,5)返回(entry.inRange(5,4,3,5假)返回假(entry.inRange(0,0,2,3)

private int row, column;
private double value;

public DataEntry(int r, int c, double val) {
    setRow(r);
    setColumn(c);
    value = val;
}

public void setRow(int r) {
    row = Math.max(0, r);
}

public void setColumn(int c) {
    column = Math.max(0, c);
}

public void setValue(double val) {
    value = val;
}

public int getRow() {
    return row;
}

public int getColumn() {
    return column;
}

public double getValue() {
    return value;
}

//DO NOT MODIFY ANY CODE ABOVE THIS COMMENT

/**
 * @param row1
 * @param column1
 * @param row2
 * @param column2
 * @return true if the current item is in the range provided
 * i.e., between rows row1 and row 2 (inclusive) and between 
 * columns column1 and column2 (inclusive), false otherwise
 */
public boolean inRange(int row1, int column1, int row2, int column2) {
if (this.row <row1){
return false;
}
if (this.row>row2 )
return false;
}
if  (this.column <column1) {
return false;
}
if (this.column> column2){
    return false;
}
        return true;

    //this is my code
}

}

Answer 1:

您可以添加一个清晰的大量到您的代码(并使其更容易调试),如果你从一个稍微不同的方向接近的问题。

这样的事情应该帮助您跟踪问题。

public boolean inRange(int row1, int column1, int row2, int column2) {
    // Rows first.
    if ( row < row1 ) {
        return false;
    }
    if ( row > row2 ) {
        return false;
    }
    // Then columns.
    if ( column < column1) {
        return false;
    }
    if ( column > column2) {
        return false;
    }
    // Everything is in range.
    return true;
}

注意我是如何扭转了逻辑和,而不是构建一个复杂的布尔表达式应该是true你正在寻找的情况下,我通过返回消除不良状态false ,当我们出界。

注:我已经使用可能会或可能不会是正确的,但至少你应该能够制定出什么更容易出错的比较。



文章来源: Finding out if a certain value is in Range Java
标签: java range