Java:存储到内存+数字

时间:2010-12-17 09:29:11

标签: java

我有一个功能:

private void fixTurn(int turn)

然后我有:

  memory1 = memory1 + count;

现在,我想说,如果转为2,它应该:

  memory2 = memory2 + count;

我试过了:

  memory + turn = memory+turn + count;

但如果我只是使用if语句,它会不会起作用吗?

7 个答案:

答案 0 :(得分:7)

不,你应该使用某种形式的集合,而不是有几个单独的变量。例如,您可以使用数组:

memory[turn] += count;

答案 1 :(得分:5)

变量名中的数字索引通常是要避免的。

想要通过索引访问这些变量通常是新手程序员没有得到数组点的标志 - 因为数组就是这样,一堆可以通过索引访问的变量:

memory[turn] = memory[turn] + count;

或更短(使用复合赋值运算符):

memory[turn] += count;

答案 2 :(得分:1)

你应该改写你的问题,但我认为你想做这样的事情

private void fixTurn(int turn){

    if(turn == 1){//note can be replaced by a switch
       memory1 +=count;
    }else if(turn ==2){
       memory2 +=count;
    }

编辑:John Skeet提出的解决方案在可读性和适应性方面更好,我建议更多

答案 3 :(得分:1)

你必须把它写成 记忆+ =转*计数

答案 4 :(得分:0)

我对你的问题不是很清楚,但我认为这正是你要找的:

memory += turn * count

答案 5 :(得分:0)

我的抛光水晶球告诉我,你有某种类型的游戏,它是按照“转弯”组织的,你想要改变给定转弯的东西(“fixTurn”)。

您可能希望将转弯存储在列表中。这比阵列更受欢迎,因为列表可以增长(或缩小)并允许添加越来越多的“转弯”。

假设您有一些模型转弯并且名为Turn的类,请将列表声明为:

List<Turn> turns = new ArrayList<Turn>();

然后你可以添加转弯:

turns.add(new Turn());

现在,如果您需要更改转弯的某个参数,请执行以下操作:

private void fixTurn(int number) {
   Turn memory = turns.get(number);
   memory.setCount(memory.getCount()+count);
}

答案 6 :(得分:-2)

java

中不允许使用此语法
memory + turn = memory+turn + count;