基本上我的问题在于,哪些情况是变量声明多余? 举个例子:
int[] number = new int[100]
for ( int i = 1; i < number.length; i++ ) {
if ( number[i] > max )
max = number[i];
if ( number[i] < min )
min = number[i];
}//End of For
int range = max - min;
System.out.println("The range is " + range);
范围变量是好的代码还是没有必要?它可以在print语句中用min - max替换。
答案 0 :(得分:3)
这一切都归结为代码的可读性和可维护性。对于这个简单的表达式,range
可以被max - min
替换,但您可能需要在计算中进一步降低range
值,并且不断用max - min
替换它可能会变得很麻烦。如果经常重复使用单个变量range
会更方便。
答案 1 :(得分:1)
我会写int range = max - min;
但是给你一行
System.out.println("The range is "
可以公平地假设它应该是范围之后发生的事情。
System.out.println("The range is " + (max - min));
注意:如果您具有包容性,则范围实际为max - min + 1
,例如如果max和min相同,则有一个可能的数字。
在Java 8中,您可以编写
IntSummaryStatistics iss = IntStream.of(numbers)
.summaryStatistics();
System.out.println("The range is " + (iss.getMax() - iss.getMin()));
答案 2 :(得分:0)
简单地说,如果额外的变量声明使代码更具可读性,那就很好。
不要考虑额外的变量赋值,使你的代码执行得更糟或任何类似的东西,让编译器处理它。根据具体情况,无论如何都会内联变量,但您可以获得更具可读性的代码。
在我看来,你拥有$user = new User;
$user->nif=$nif;
$user->name =$name;
$user->surname=$surname;
$user->birthday=Carbon::parse($birthda)->format('d/m/Y');
代替range
的例子有点接近它,但是如果表达会更复杂,那么就把它分解成更小,更容易理解的部分。作为额外的好处,它可以使您的代码在以后更容易重构。
答案 3 :(得分:0)
数组索引从imagedestroy()
开始(不是0
),您应该尝试不重新发明轮子。 Math
可以简化1
和min
。但您需要声明并初始化max
和max
。而且我更喜欢for-each
loop。接下来,我认为在可能的情况下减少变量的范围是一个很好的实践。像,
min