gpt4 book ai didi

java - Java 判断某个值是否在 Range 中

转载 作者:行者123 更新时间:2023-12-02 12:04:21 24 4
gpt4 key购买 nike

我对 Java 编程还很陌生,我正在尝试完成这个包,但我似乎做得不太好。我需要找到我调用的对象是否在范围内,例如,如果我有第 0 行到第 3 行和第 1 到 2 列,则在该范围内调用方法 inRange 的 DataEntry 对象具有行 = 2、列 = 1,它应该返回 true,因为行 (2) 位于 0 和 3 之间,列 (1) 位于 (1 和 2) 之间。我尝试了不同的代码,当前的代码是我认为最好的选择,但是,当我测试它时,它给了我错误。如果我有 DataEntry 条目 = new DataEntry(2, 4, 8.88);那么它应该返回 true for(entry.inRange(3, 5, 2, 4) return true for(entry.inRange(5, 4, 2, 5) return false for(entry.inRange(5, 4, 3, 5) ) 对 (entry.inRange(0, 0, 2, 3) 返回 false

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
}

}

最佳答案

如果您从稍微不同的方向解决问题,则可以使代码更加清晰(并使其更易于调试)。

类似这样的内容应该可以帮助您找到问题。

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;
}

请注意我如何反转逻辑,而不是构建一个复杂的 boolean 表达式,该表达式应该是 true对于您正在寻找的情况,我通过返回 false 来消除不良状态当我们出界时。

注意:我使用的比较可能正确,也可能不正确,但至少您应该能够更轻松地找出问题所在。

关于java - Java 判断某个值是否在 Range 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47010404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com