在我的应用程序中,我有许多可以优化的 IF 语句,但我一生都无法在没有错误的情况下找到一个好的可能解决方案。
我当前的代码:
if (User_XP > -1){User_level.setText("1");Minimum_Level= Level1; Maximum_level = Level2;}
if (User_XP > Level1){User_level.setText("1");Minimum_Level= Level1; Maximum_level = Level2;}
if (User_XP > Level2){User_level.setText("2");Minimum_Level = Level2; Maximum_level = Level3;}
if (User_XP > Level3){User_level.setText("3");Minimum_Level = Level3; Maximum_level = Level4;}
if (User_XP > Level4){User_level.setText("4");Minimum_Level = Level4; Maximum_level = Level5;}
if (User_XP > Level5){User_level.setText("5");Minimum_Level = Level5; Maximum_level = Level6;}
if (User_XP > Level6){User_level.setText("6");Minimum_Level = Level6; Maximum_level = Level6;}
if (User_XP > Level7){User_level.setText("7");Minimum_Level = Level7; Maximum_level = Level6;}
if (User_XP > Level8){User_level.setText("8");Minimum_Level = Level8; Maximum_level = Level6;}
if (User_XP > Level9){User_level.setText("9");Minimum_Level = Level9; Maximum_level = Level6;}
它的想法是计算出游戏中的用户级别,并据此创建一个百分比。但是这个编码领域确实效率不高,因为它可能会产生多个错误,有人对可能的解决方案有任何建议吗? 请询问是否需要更多信息。
最佳答案
也许将您的关卡经验要求存储在数组中并使用循环。
int[] levels = new int[] { -1, Level1, Level2, Level3 };
int level;
for (level = 0; level < levels.length && userXp < levels[level]; level++) { }
int minLevel = levels[level];
int maxLevel = levels[level + 1];
userLevelText.setText(Integer.toString(minLevel));
关于java - Android - 优化多个if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315129/