【发布时间】:2020-12-09 02:54:54
【问题描述】:
我创建了一个非常简单的程序,它提示用户输入 3 个整数,然后确定输入的变量是否创建定义的三角形。是否有任何提示或建议可以简化这一点以提高效率?这是我为自己提出的练习。我只编码了 6 个月,就效率而言还没有达到,所以任何帮助或建议都会很棒。谢谢。
import java.util.*;
public class Test1
{
public static void main(String[] args)
{
int[] triangleInput = EnterSides();
DisplayArray(triangleInput);
DetermineValidTriangle(triangleInput);
}
public static int[] EnterSides()
{
Scanner keyboard = new Scanner(System.in);
int[] triangleInput = new int[3];
final int numOfSides = 3;
System.out.println("Please enter " + numOfSides + " integers: ");
for(int x = 0; x < triangleInput.length; ++x)
{
triangleInput[x] = keyboard.nextInt();
}
return triangleInput;
}
public static void DisplayArray(int[] userInput)
{
int[] triangleInput = userInput;
System.out.print("You have entered: " + Arrays.toString(triangleInput));
System.out.println();
System.out.println();
System.out.println("Side A of triangle is " + triangleInput[0] + ", Side B of triangle is " +
triangleInput[1] + ", and Side C of triangle is " + triangleInput[2]);
}
public static void DetermineValidTriangle(int[] userInput)
{
int[] triangleInput = userInput;
boolean isTriangle = false;
if(triangleInput[0] + triangleInput[1] > triangleInput[2])
if(triangleInput[1] + triangleInput[2] > triangleInput[0])
{
if(triangleInput[0] + triangleInput[2] > triangleInput[1])
{
isTriangle = true;
}
}
System.out.println();
if(isTriangle)
System.out.println("Successful triangle has been built!");
else
System.out.println("Sorry, Unsuccessful triangle. The requirement for a triangle is A + B
is greater than C. B + C is greater than A, and A + C is greater than B.");
}
}
【问题讨论】:
-
请解释一下“效率”是什么意思。
-
@tgdavies 对缺乏澄清表示歉意。我所说的“效率”是指代码中可以缩短但仍能产生所需功能的任何区域。在更广泛的意义上,更少的代码行数。
-
简洁是一个更好的词。效率通常用于意味着更少的时间或内存使用。
-
糟糕,我遗漏了 2*:您只需要一次计算:A + B + C 必须 > 2*MAX(A,B,C)
标签: java arrays performance