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
Post a Comment