作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
希望这个问题不会在回答时造成太多麻烦,但在我的数独项目中写出这个问题时,我知道必须有更好的方式来表达这个 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/
我是一名优秀的程序员,十分优秀!