如何判断int是否已更改

时间:2014-01-10 23:57:24

标签: java

我想知道如何判断int是否已被更改(在程序期间)。 与if语句一样。

int i = 2;
int a = 1;

while(1 < 2) {
if(i % 100 == 0) i++;
}

if(i //Then checks if it changed) {
   System.out.println("Changed :D");
}

有没有办法判断变量i是否在程序中被更改?

5 个答案:

答案 0 :(得分:2)

由于这是Java,这些变量是一个类的数据成员吗?在这种情况下,让他们private访问并提供getter和setter。如果您愿意,您的二传手可以通知您。

答案 1 :(得分:0)

在单独的变量中跟踪i的原始值并将i与之比较?

答案 2 :(得分:0)

// Your int variable
int i = 0;
// A scratch variable
int prev_value_of_i = i;

// Call this code to check whether i has changed since last call
if(i != prev_value_of_i) {
    System.out.println("Changed :D");
    prev_value_of_i = i;
}

答案 3 :(得分:0)

int i = 0;

boolean valueChanged = false;

while(some good condition) {
    if (i % 100 == 0) {
        i++;
        valueChanged = true;
    }
}

if(valueChanged) {
   System.out.println("Changed :D");
}

答案 4 :(得分:0)

这似乎是多余的,因为程序员应该知道存储值的时间和地点。如果你不这样做,可以单步使用调试器? @skover的答案是最灵活的,处理许多意外的时间,你可能会改变价值而不需要在无限循环中添加代码行。

class TalkativeInt{
     private int x;
     TalkativeInteger(int x){
          this.x = x;
     }
     public void set(int a){
         System.out.println("Changed!!   "+x+" to "+a);
         x = a;
     }
     public int get(){
         //System.out.println("Accessed - that tickles");
         return x;
     }

}