2017-09-02 38 views
0

我目前正在开发一个简单的Java游戏以获得乐趣,而且我遇到了一个问题。当我运行代码时,它会为敌人吐出一个随机数字,但它始终不会触发if then语句。任何人都可以帮我解决这个问题吗?即使条件满足,如果陈述并不总是会消失?

public static void main(String[] args) { 
     // TODO code application logic here\ 
    Random rnd = new Random(); 

    int playerlevel = 1; 
    int playermaxdamage = 9; 
    int playermindamage = 1; 
    int playerhealthrng = rnd.nextInt(11 - 7) + 7; 
    int playerhealth = playerlevel * playerhealthrng; 
    int playerdamage = rnd.nextInt(playermaxdamage - playermindamage) + 1; 
    int enemytyperngmax = 10; 
    int enemytyperngmin = 1; 
    int enemytyperngreal = 0; 
    int enemyratdamagemaxrng = 3; 
    int enemyratdamageminrng = 1; 
    int enemyrathealthmaxrng = 5; 
    int enemyrathealthminrng = 1; 
    int enemyratnumberrangehigh = 5; 
    int enemyratnumberrangelow = 1; 
    int noenemynumberrangehigh = 6; 
    int noenemynumberrangelow = 9; 
    int enemydragonnumberrangehigh = 10; 
    int enemydragonnumberrangelow = 10; 
    int enemyrathealthreal = rnd.nextInt (enemyrathealthmaxrng - enemyrathealthminrng) + 1; 
    int enemytyperng = rnd.nextInt(enemytyperngmax - enemytyperngmin) + 1; 

    String asktowalk = "Do you want to move forward?"; 
    String playerinfolevel = ("Player's Current level is " + playerlevel); 
    String playerinfohealth = ("Player's Current Health is " + playerhealth); 
    String playerdamagedealt = ("Player did " + playerdamage + " to enemy"); 
    String enemyratinfo = ("A Rat has appered with " + (enemyrathealthreal) + " Hp"); 
    String enemynoninfo = ("You are Safe . . . for now"); 
    String enemydragoninfo = ("You have uncovered a Danges beast he swings for 2,147,483,647 Damange");   

    enemyratdamagemaxrng = rnd.nextInt(enemyratdamagemaxrng - enemyratdamageminrng) + 1; 

    System.out.println(enemyratdamagemaxrng); 

    if (enemytyperng > enemyratnumberrangelow && enemytyperng < enemyratnumberrangehigh) 
     System.out.println(enemyratinfo); 

    if (enemytyperng > noenemynumberrangelow && enemytyperng < noenemynumberrangehigh) 
     System.out.println(enemynoninfo); 

    if (enemytyperng == enemydragonnumberrangehigh) 
     System.out.println(enemydragoninfo); 

    } 
} 
+2

您是否已通过IDE调试器中的代码?如果没有,请先做。如果你有,然后解释你发现。 –

+0

您是否考虑过添加一些'else' if(s)? –

+0

请访问[帮助]并阅读[问]。告诉我们预期的产量和实际产量。 –

回答

0

您有:

if (enemytyperng > noenemynumberrangelow && enemytyperng < noenemynumberrangehigh) 
     System.out.println(enemynoninfo); 

如果enemytyperng大于9,如果enemytyprng小于6;显示enemynoninfo。

但是,一个值不可能大于9且小于6.(也许你打算使用OR ||运算符?)或者,也许你将这些值分配给你的变量。

此外,你是随机产生一个0到8之间的数字,然后加1.所以它永远不会大于9.请记住,随机数发生器是排他性的,这意味着rnd.nextInt(9)只会生成值在0和8之间。

这同样适用于您的最后一条if语句。它永远不会等于10,因为它的最大值可以等于9.

所以如果你想产生一个1到10之间的随机数;尝试

rand.nextInt(10) + 1; 

但是,你有什么本质上是

rand.nextInt(9) + 1; 

边注:有很多跟你写的代码的担忧。我强烈建议您选择一本真正的大学水平教科书,并从头到尾努力学习。