java - Understanding nested loop and classes -


i started project understand nested loops , classes. in cycling method when reach if(y >= 0) loop doesn't use variables in classes. example if mph 15 , gear 1 or 3 won't ask me change gear. or if gear 1 , speed 11+ wont ask me change gear? doing incorrectly?


public class bike {     int speed;     int gear;      void changegear(int newval) {         gear = newval;     }      void speedup(int newval) {         speed = newval;     }      void breaks(int slow) {         speed = speed + slow;     }      void printstate() {         system.out.println("gear is: " + gear);         system.out.println("speed is: " + speed + ("mph"));     } }  //________________________  public static boolean cycle = true; public static bike b1 = new bike(); public static int x; public static int y; public static scanner input = new scanner(system.in); public static int choice;  //______________________________  public static void cycling() {     while (cycle == true) {         system.out.println("what now? enter number.");         system.out.println("1: speed change");         system.out.println("2: change gear");         choice = input.nextint();         if (choice == 1) {             system.out.println("choose speed change");             y = input.nextint();             if (y < 0) {                 b1.breaks(y);                 if (b1.speed < 0) {                     b1.speed = math.abs(y) + y;                     system.out.println("you've stopped entirely");                 }             }             if (y >= 0) {                 b1.speed = y;                 b1.printstate();                 if (b1.speed >= 0 && b1.speed <= 10) {                     while (b1.gear != 1) {                         system.out.println("you need in gear 1 " + "that! please change gears.");                         x = input.nextint();                         b1.changegear(x);                     }                     if (b1.speed >= 11 && b1.speed <= 20) {                         while (b1.gear != 2) {                             system.out.println("you need in gear 2 for" + "that! please change gears.");                             x = input.nextint();                             b1.changegear(x);                         }                         if (b1.speed >= 21) {                             while (b1.gear != 3) {                                 system.out.println("you need in gear 3 for" + "that! please change gears.");                                 x = input.nextint();                                 b1.changegear(x);                             }                         }              /*if(b1.speed >= 0 && b1.speed <=10){                  b1.gear = 1;              }else if(b1.speed >= 11 && b1.speed <=20){                  b1.gear = 2;              }else if(b1.speed >= 21){                  b1.gear = 3;              }*/                         b1.printstate();                     }                 }             }         }     } } 

think statements. have looks this:

if (b1.speed >= 0 && b1.speed <= 10) {     //some while loop here whatever     if (b1.speed >= 11 && b1.speed <= 20) {         //more code     } } 

in code, statement never true:

if (b1.speed >= 11 && b1.speed <= 20) { 

the way statement if b1.speed>=0 && b1.speed<=10. therefore, b1.speed ever between 11 , 20 when second (nested) if statement?


Comments