Java中不必要的变量声明?

时间:2015-11-22 20:09:08

标签: java

基本上我的问题在于,哪些情况是变量声明多余? 举个例子:

        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替换。

4 个答案:

答案 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可以简化1min。但您需要声明并初始化maxmax。而且我更喜欢for-each loop。接下来,我认为在可能的情况下减少变量的范围是一个很好的实践。像,

min