我想知道如何判断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是否在程序中被更改?
答案 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;
}
}