using string to break out of loop in java -


i break out of while true loop if user enters in "stop" scanner. scanner takes in integers , believe problem lies. if try type in "stop" many errors saying "exception in thread main". here snippet of code:

public class algorithm { private scanner input = new scanner(system.in); int n;  while (true){     system.out.println("eneter number check if odd or even, hit enter: ");     system.out.println("type 'stop' end program");     n = input.nextint();      string strn = string.valueof(n); //convert integer string     if (new string(strn).equals("stop")){ //if string stop, breaks         system.out.println("thanks using program");         break;     }      if (n % 2 == 0){         system.out.println(n+" even");         continue;     }     else{         system.out.println(n+" odd");         continue; 

i know missing closing curly braces rest assured there in actual code. thanks.

here error getting: exception in thread "main" java.util.inputmismatchexception @ java.util.scanner.throwfor(scanner.java:864) @ java.util.scanner.next(scanner.java:1485) @ java.util.scanner.nextint(scanner.java:2117) @ java.util.scanner.nextint(scanner.java:2076) @ oddoreven.algorithm.checker(algorithm.java:13) @ oddoreven.main.main(main.java:7)

you've identified problem - scanner reads integers:

int n; ... n = input.nextint(); 

so it's impossible variable n (an int) contain string "stop" (and scanner throws exception anyway when call nextint() encounters string, such "stop", cannot convert int).

to this, need read strings input (probably using scanner.nextline()), check whether "stop", , if not, attempt convert them ints using like:

int n = integer.parseint(mystring) 

to handle garbage input (neither stop nor integer), wrap parseint line in try-catch block can detect when input garbage catching exception

try {   int = integer.parseint(mystring);   // int } catch (numberformatexception e) {   // display warning message user instead } 

see related question.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -