我的程序根据整数输入的比较给出一个字符串答案。是否有更有效的方法来执行此操作,而不是分别提示用户 3 次并分别调用 numberVerify 3 次?我该怎么做?对 Java 非常陌生。
public static void main(String[] args) {
// TODO code application logic here
// declare variables
int number=0;
System.out.println("Enter the first integer: ");
int number1 = numberVerify(number);
System.out.println("Enter the second integer: ");
int number2 = numberVerify(number);
System.out.println("Enter the third integer: ");
int number3 = numberVerify(number);
String compare = comparison(number1, number2, number3);
printer(compare);
}
public static int numberVerify(int number){
Scanner in = new Scanner(System.in);
if(in.hasNextInt()){
number = in.nextInt();
}
else{
System.out.println("Error! Input must be an integer!");
System.out.println("");
return numberVerify(number);
}
return number;
}
public static String comparison(int number1, int number2, int number3){
String answer;
if(number1 == number2 && number1 == number3)
{
answer = "all the same";
}
else if(number1 != number2 && number1 != number3)
{
answer = "all different";
}
else
{
answer = "neither";
}
return answer;
}
public static void printer(String answer){
System.out.println(answer);
}
最佳答案
效率在这里无关紧要。
用户将花费 SECONDS 来输入数字。操作系统可能需要几毫秒来执行键盘事件处理、屏幕重绘等。您的 Java 应用程序将花费几毫秒或更少的时间来做出决策。为减少微秒分量而付出的任何努力都是白费力气。
如果这里有问题需要解决(我并不是说有),它们将是:
使用户界面易于使用。
编写易于阅读和维护的代码。
将代码编写得“优雅”...这不一定与之前的相同。
更新 - 显然您实际上对简化和/或减小代码大小感兴趣。
首先,大多数人所说的效率并不是这个意思。 (实际上,我认为花时间改进足够好的代码是对时间的低效利用。)
其次,简单性和代码大小不是一回事。大多数人(程序员)会说简单的代码是易于理解的代码……对于普通程序员而言。通常,更简洁的问题解决方案实际上很难理解。 (以@rby的代码为例,如果你需要在不测试的情况下确定它是正确的,那么你需要非常仔细地阅读它。)
最后,专业的软件工程师遵循一般原则,即代码需要“足够好以达到目的”1 ... 但不能更好。 Perfect is the enemy of good .花时间让程序变得比它需要的更好是在浪费你的时间,并且有可能让你/你的客户/你的雇主付出金钱。
1 - 目的可能包括性能标准、可读性/可维护性、通用性/可重用性以及各种特定的正确性标准。但事实并非如此。通常,代码是为其中许多标准不相关甚至适得其反的上下文编写的。但我离题了....
关于java - 我怎样才能使它更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792339/