eclipse - Java : Nesting an if/else statement inside a while loop -


this question has answer here:

this first question in stackoverflow, hope forgive me many possible error i'm going make in setting post.... problem following : code should generate random number, display user(in order me guess whitout making many attempts... should exercize), ask user guess number between 0 , 50, check if input integer or not and, if user guesses right number, print "yes, number is.." . but, if user digits letter or whatever not number, if/else loop goes crazy , program starts printing "choose number between 0 , 50: please insert number between 0 , 50, not letter" whitout stopping... can anywone me please?

package methods;  import java.util.scanner;  public class methods {      static int randomnumber;     static scanner userinput = new scanner(system.in);      public static void main(string[] args) {          system.out.println(getrandomnum());          int guessresult = 1;         int randomguess = 0;          while (guessresult != -1) {             system.out.print("choose number between 0 , 50: ");              if (userinput.hasnextint()) {                 randomguess = userinput.nextint();                 guessresult = checkguess(randomguess);             } else {                  system.out.println("please insert  number, not  letter");             }          }          system.out.println("yes, number " + randomguess);     }      public static int getrandomnum() {          randomnumber = (int) (math.random() * 51);         return randomnumber;      }      public static int checkguess(int guess) {          if (guess == randomnumber) {              return -1;         } else {              return guess;          }     } } 

you allowing user enter letter (with intention giving error message, call scanner.nextint)

you should read input string, , parse it.

    string input = null;     while (guessresult != -1) {         system.out.print("choose number between 0 , 50: ");          input = sc.next();         try         {             randomguess = integer.parseint(input);             checkguess(randomguess);         } catch(numberformatexception ex)         {             system.out.println("please insert  number, not  letter");         }      } 

Comments

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

Ruby on Rails, ActiveRecord, Postgres, UTF-8 and ASCII-8BIT encodings -