Java level calculator if statement returning the wrong value (Newbie)

后端 未结 6 1493
野的像风
野的像风 2021-01-21 09:48

i\'m learning some Java and decided to do something simple but it keeps returning the wrong value... i don\'t know why i\'m sure there something that my untrained eye isn\'t pic

6条回答
  •  耶瑟儿~
    2021-01-21 10:10

    if i would be you, and if you have finite number of levels, i would go with enums and i would do something like that

    public class HelloWorld {
        private static enum Level {
            LEVEL_1(0), LEVEL_2(1), LEVEL_3(10), LEVEL_4(15), LEVEL_5(25);
            int expRequired;
    
            Level(int expRequired) {
                this.expRequired = expRequired;
            }
    
            static Level getLevel(int exp) {
                Level level = LEVEL_1;
                for (Level l : Level.values()) {
                    if (l.expRequired > exp) {
                        break;
                    }
                    level = l;
                }
                return level;
            }
        }
    
        static class User{
            Level level = Level.LEVEL_1;
            int exp = 12;
        }
    
        public static void main(String args[]) {
            User user = new User();
            int level1xp = 0, level2xp = 1, level3xp = 10, level4xp = 15, level5xp = 25;
            int level1 = 1, level2 = 2, level3 = 3, level4 = 4, level5 = 5;
            user.level = Level.getLevel(user.exp);
            System.out.println(user.level );
    
        }
    }
    

提交回复
热议问题