我正在参加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;
}
}
我的书说上面这个程序中nRemaining
的目的是增强程序的可读性,而不是用作整数除法的左手操作数。任何人都可以帮助解释为什么这是?我确信程序可以用更简洁的方式重写,但这是最明显的目的吗?
答案 0 :(得分:1)
本质上,像这样的上下文中的附加变量的目的是将计算过程分解为更小的更易于理解的步骤。您可以将这些操作组合成更密集的指令集,然而这将更难以理解并且更为关键的是调试。为此,引用......
“调试的难度是首先编写代码的两倍。因此,如果您尽可能巧妙地编写代码,那么根据定义,您可能不够聪明,无法对其进行调试。” --Brian Kernighan
(以防万一:https://stackoverflow.com/questions/1103299/help-me-understand-this-brian-kernighan-quote)