java - While loop executes only once -
i have hard time figuring out why while loop won't loop. runs through once , stops.
import java.util.*; public class mileskm { public static void main(string[] args) { scanner inp = new scanner(system.in); boolean continue1 = true; while (continue1 == true) { system.out.println("would convert m-km or km-m(km m-km , m km-m)"); string convert = inp.nextline(); if (convert.equalsignorecase("km")) { system.out.println("enter mileage converted."); double num = inp.nextdouble(); double con = num * 1.60934; system.out.println(con); continue1 = true; } else if (convert.equalsignorecase("m")) { system.out.println("enter km converted."); double num = inp.nextdouble(); double con = num * 0.621371; system.out.println(con); continue1 = true; } else { continue1 = false; } } } }
i trying make loop user able convert units more once. , welcome!
the problem when call nextdouble()
, consumes number not newline comes after number. fix this, put line of code inp.nextline();
after calling nextdouble()
.
example , full explanation:
suppose input "km", press enter, "123", press enter. program's point of view, input stream "km\n123\n"
.
the code string convert = inp.nextline();
gets value "km"
, advances input past first "\n"
.
the code double num = inp.nextdouble();
gets string "123"
, returns value (double)123.0 . stops parsing when sees '\n'
, not consume character - remains in input buffer.
in next iteration of loop, inp.nextline();
sees "\n"
immediately, string convert = "";
. triggers else
case in loop, exits loop.
Comments
Post a Comment