簡體   English   中英

用函數修改全局變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM