Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复代码以解决此问题?_Java - Fatal编程技术网

Java 如何修复代码以解决此问题?

Java 如何修复代码以解决此问题?,java,Java,有一个Java编码问题,如果给定的非负数小于20的倍数1或2,则返回true。例如,38和39返回true,但40返回false 我的代码: public boolean less20(int n){ if(n%20==0){ return false; }else if(n>20 && n%20!=0){ return false; }else if(20-n>2){ return false;

有一个Java编码问题,如果给定的非负数小于20的倍数1或2,则返回
true
。例如,38和39返回
true
,但40返回
false

我的代码:

public boolean less20(int n){
    if(n%20==0){
        return false;
    }else if(n>20 && n%20!=0){
        return false;
    }else if(20-n>2){
        return false;
    }else if((n+1)%20!=0||(n+2)%20!=0){
        return true;
    }else{
        return true;
    }
}
该代码适用于大多数情况,但其中一些根本不起作用,例如n=58或n=59


如何修复代码并使用最简单的方法解决此问题?

对于一个简单的解决方案,
(n+1)%20==0 | |(n+2)%20==0
应该这样做。我对mod方法感到困惑,但现在我完全理解了它。非常感谢:)第1步修复代码:格式化代码(也称为缩进代码)以便于人类阅读。@1BLASTONE更简单:
返回n%20>=18
您提到了非负数,所以您应该对负数抛出异常,或者使用
Math.floorMod
以便它也适用于负数。