java - 压缩 'If' 语句

标签 java if-statement methods

希望这个问题不会在回答时造成太多麻烦,但在我的数独项目中写出这个问题时,我知道必须有更好的方式来表达这个 if 条件。

提前谢谢你们。

public static void modVal(int r, int c, int x) {
    if((r>=1 && r<=9) && (c>=1 && c<=9) && (x>=1 && x<=9)) {
        sudoku.set(r,c,x);
    }
}

最佳答案

您可以将逻辑提取到 boolean 值中,然后只测试它们,例如

boolean validRow = r >= 1 && r <= 9;
boolean validColumn = c >= 1 && c <= 9;
boolean validValue = x >= 1 && x <= 9;
if (validRow && validColumn && validValue) {
    sudoku.set(r, c, x);
}

或者,假设每个限制都相同(行、列和值都包含 1-9),那么您可以将其提取到名为 withinLimits(value) 的方法中,该方法检查值介于 1 和 9 之间。

public boolean withinLimits(int value) {
    return value >= 1 && value <= 9;
}

然后...

if (withinLimits(r) && withinLimits(c) && withinLimits(x)) {
    sudoku.set(r, c, x);
}

不过并没有比您拥有的好多少,只是在语法上更简洁一些。而且您也不需要额外的括号。放下它们。

关于java - 压缩 'If' 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489898/

相关文章:

java - 老年代对象的统计?

linux - Shell - 在 IF else 中运行一堆命令

Python 字典与 If 语句速度

Python 字符串方法难题

python - 我可以将一个函数和不同数量的参数传递给另一个函数吗?

java - 我有一个处理图片的Java 程序。它编译并运行,但没有显示任何内容......有人知道出了什么问题吗?

java - 我应该制作 Linux Shell Script 还是 Java 程序?

java - hibernate : SetMaxResults not working with java. util.Map

java - 如何获取驻留在 src/main/resources 中的 .exe 文件的路径

c# - 在使用 “using” block 语句时使用 if else 语句的任何更好的方法?