java - Android - 优化多个if语句

标签 java android optimization if-statement

在我的应用程序中,我有许多可以优化的 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/

相关文章:

c# - 下载时内存优化

java - 应用内结算广告移除 : Ads are not showing

java - Firestore 根据喜欢来订购集合

java - 从子集合 Firestore/Android 中删除 map

python - 如何有效地将阵列旋转±180°?

javascript - Chrome的V8不会因为 "tagged-to-i: not a heap number"而优化功能

java - 无法在 sonatype 存储库中找到简单天气项目

java - 将对象添加到 ArrayList 并在 Java 中给出 NullPointerException

java - 用户支持的分配未满足跨步要求,退回到单独分配

java - Apache Spark 还是级联框架?