Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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_Variables_Division_Readability_Operand - Fatal编程技术网

特定Java变量的用途

特定Java变量的用途,java,variables,division,readability,operand,Java,Variables,Division,Readability,Operand,我正在学习AP计算机科学课程,有一个关于Java程序中某个特定变量的用途的简短问题。下面是我自己对教科书中某个程序的轻微修改 public class Nineteen { public static void main(String[] args) { int valid = checkNumber(6145); } public static int checkNumber(int n) {

我正在学习AP计算机科学课程,有一个关于Java程序中某个特定变量的用途的简短问题。下面是我自己对教科书中某个程序的轻微修改

public class Nineteen {
        public static void main(String[] args) {
                int valid = checkNumber(6145);
        }

        public static int checkNumber(int n)
        {
                int d1,d2,d3,checkDigit,nRemaining,rem;
                checkDigit = n % 10;
                nRemaining = n / 10;
                d3 = nRemaining % 10;
                nRemaining /= 10;
                d2 = nRemaining % 10;
                nRemaining /= 10;
                d1 = nRemaining % 10;
                rem = (d1 + d2 + d3) % 7;
                System.out.println("checkNumber executed.");
                if (rem == checkDigit) {
                        System.out.println("Equal");
                }
                return 1;
        }
}

我的书中说,在上面的这个程序中,
nRepaining
的目的是增强程序的可读性,而不是用作整数除法的左操作数。有人能解释为什么会这样吗?我确信这个程序可以用更简洁的方式重写,但这是它最明显的目的吗?

本质上,在这样的上下文中,附加变量的目的是将计算过程分解为更小、更易于理解的步骤。您可以将这些操作组合成更密集的指令集,但是这样就更难理解,更难调试。为此,引用

“调试的难度是一开始编写代码的两倍。因此,如果您尽可能巧妙地编写代码,那么根据定义,您就没有足够的智慧来调试它。”——Brian Kernighan


(以防万一:)

是的,它可以压缩,但我认为你的书是对的,它提高了可读性!如果你将其浓缩,那么你就有可能把事情混为一谈,弄错!我认为
d3
行应该是
d3=nRemaining%10,不是吗?我现在可以看出这是合乎逻辑的。它只是没有立即引起我的兴趣。如果您碰巧知道:
nRemaining
为什么不用于操作数除法?谢谢你和@rahul tripathi的回答。是的@iamnotmaynard谢谢你在旁边指出这一点。你说“操作数除法”是什么意思?除法是一种二进制运算,因此任何除法都必须有两个操作数。一般来说,简单的除法。我对你的问题还是有点不清楚。重新维护是分部业务的一部分。报表nRepaining/=10;可以重写为nRemaining=nRemaining/10;。/=只是一个简写符号,可以节省可怜的程序员的时间(稍微)。