[英]Modify a Global Variable with a Function?
在mousePressed中,我需要aNumber的值,但是我不能傳遞mousePressed(int aNumber)..因此,當通過javascript調用theNumbers時,我需要某種全局變量來保持修改。
int number = 0;
int theNumbers(int aNumber) { //aNumber = 1, 2, or 3, from the javascript)
println(number); // prints the correct number
int number = aNumber; // set the global variable number equal to aNumber
return number;
}
void mousePressed() {
aLongNumber = 10000000000;
println(number); // prints 0 right now, should print the value of aNumber
long numberLong = aLongNumber + (number * aLongNumber);
}
您在theNumbers()
內部聲明局部變量,只是在number
之前刪除int
,因此您的函數將如下所示:
int theNumbers(int aNumber) { //aNumber = 1, 2, or 3, from the javascript)
println(number);
number = aNumber; // removed int that made new local variable "number"
return number;
}
刪除此行:
int number = aNumber;
您將參數復制到“數字”變量,然后將其返回。 實際上,您正在打印的全局變量“ number”在您在任何地方發布的代碼中均未更改,然后返回該參數,該參數與您剛剛執行的計算無關。
您可能想要修改全局參數number
,然后返回它,因此進行更改:
int theNumbers(int aNumber) {
// calculations for number (based on aNumber? contains number=SOMETHING somewhere?)
println(number); // prints the correct number
return number;
}
編輯:
只需修改全局即可。 從int number = aNumber;
刪除類型int number = aNumber;
因此您不必重新初始化變量。 到底:
int theNumbers(int aNumber) {
// calculations for number (based on aNumber? contains number=SOMETHING somewhere?)
println(number); // prints the correct number
number = aNumber;
return number;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.