loops - Java Number-Guessing Game Issue -
loops - Java Number-Guessing Game Issue -
i trying build number guessing game in java unlike usual 1 guess number , programme tells whether high or low. trying build 1 programme guesses number , whether high or low until programme finds number chose.
i having issue "if" statement number programme guesses low.
the specific issue here:
if (hilow.equals("l")) { middle = middle * 2; system.out.println(middle); numbguesses++; }
the entire programme far following:
import java.util.*; public class numbguess { public static void main(string args[]) { int numbguesses = 0; boolean win = false; int hi = 1000000; int low = 0; scanner input = new scanner(system.in); int middle = hi / 2; system.out.println(middle); while (win == false) { string hilow = input.nextline(); if (hilow.equals("h")) { middle = middle / 2; system.out.println(middle); numbguesses++; } if (hilow.equals("l")) { middle = middle * 2; system.out.println(middle); numbguesses++; } if (hilow.equals("y")) { win = true; system.out.println("it took: " + numbguesses + " guesses"); } } } }
the issue running permanent loop whenever number low:
i think need alter middle operated in order working result.
your logic flawed. when number low, shouldn't multiply 2, , when it's high, shouldn't split 2.
the new guess should in middle of range. if first guess 500000, , user says it's low, number between 500000 , max number (1000000), new guess should (1000000-500000)/2=750000
, not 500000*2
. if first guess high, number between min number (0) , 500000, next guess should (500000-0)/2=250000
.
java loops
Comments
Post a Comment