如何在交替返回值时循环2个变量

时间:2018-03-29 17:36:56

标签: java loops oop return return-value

我只是新编码我不确定这是否可能在我的程序中我应该能够循环1 - 2 - 1 - 2 - 1 - 2交替,但我不知道该怎么做

我应该把这个思考函数放进去,所以每当我调用它时,它会在1-2-1-2-1-2之间交替显示

示例第一次我打电话给它认为会返回1然后第二次会返回2然后第三次会再次返回1

public int think() {
    int i=1;
    int z=1;

    if(i==1){
        return i;

    }
    if(i==2){
        return i;
    }


    return i;
}

以下代码获取思考函数的返回值

public static String askEnemy(Enemy enemy){
    String x = "null";

    switch (enemy.think()) {
        case 1:
            x = "Hit";
            break;
        case 2:
            x = "Defend";
            break;
        case 3:
            x = "Charge";
            break;

    }


    return x;
} 

3 个答案:

答案 0 :(得分:0)

变量izthink方法的本地变量,因此它们会在每次调用时初始化为您在开始时拥有的值。你无法使用它们继续发展状态。

您需要在Enemy类中拥有一个成员变量。

class Enemy {
 ...
 private int thinkVar = 1;

 public int think() {
     int thinkResult = thinkVar;
     thinkVar = (thinkVar == 1) ? 2 : 1;
     return thinkResult;
 } 
}

修改

如果您可以将其设为-11,则只需撰写thinkVar = -thinkVar

即可

答案 1 :(得分:0)

您可以从主类中使用全局变量中受益,并可以将其发送到您将think方法作为参数开发的其他类。检查以下内容:

public int think(int value)
{
   if (value % 2 = 0)
      return 21
   else
      return 1;
}

主要课程:

int value = 1;
...

public static String askEnemy(Enemy enemy){
    String x = "null";

    switch (enemy.think(value)) {
        case 1:
            x = "Hit";
            break;
        case 2:
            x = "Defend";
            break;
        case 3:
            x = "Charge";
            break;

    }
    value++;
    return x;
} 

答案 2 :(得分:0)

需要Enemy类内的Enemy变量。这样你就可以拥有多个具有不同值的敌人。否则,如果所有public class Enemy { private int thinkValue; public Enemy(){ thinkValue = 1; } //Other functions and variables are probably in this class. public void setThinkValue(int value){ thinkValue = value; } public int getThinkValue(){ return thinkValue; } } 个对象都有一个值,则该值对于每个对象都不是独立的。

55 23 L * ? *