java - How can I make this more efficient? -


my program gives string answer based on comparisons of integer input. there more efficient way of doing instead of prompting user 3 separate times , calling numberverify 3 separate times? how this? new java.

public static void main(string[] args) {     // todo code application logic here     // declare variables     int number=0;     system.out.println("enter first integer: ");     int number1 = numberverify(number);     system.out.println("enter second integer: ");     int number2 = numberverify(number);     system.out.println("enter 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 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 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); } 

efficiency irrelevant here.

the user going take seconds enter number. os take milliseconds keyboard event processing, screen redrawing etc. java application going take microseconds or less decision making. effort expend reduce microsecond component wasted effort.

if there issues addressed here (and i'm not saying there are) be:

  • making user interface easy use.

  • writing code easy read , easy maintain.

  • writing code "elegant" ... not necessarily same previous.


update - apparently interested in simplifying and/or reducing size of code.

firstly, that's not people mean efficiency. (indeed, argue spending time on improving code enough inefficient use of time.)

secondly, simplicity , code size not same things. people (programmers) simple code code easy understand ... average programmer. often, more concise solution problem difficult understand. (take @rby's code example. if needed sure correct without testing it, need read carefully.)

finally, professional software engineers follow general principle code needs "good enough purpose"1 ... no better. perfect enemy of good. spending time making program better needs wasting time, , liable cost / client / employer money.

1 - purpose may include performance criteria, readability / maintainability, generality / resuability, , various specific correctness criteria. not case. often, code written context many of criteria irrelevant or counter-productive. digress ....


Comments