[英]Confusing increment behaviour
int i = 1;
void setup() {
Serial.begin(9600);
}
void loop() {
if(i == 1){
Serial.print(i);
}
i++;
}
這僅打算將i
的值打印一次。 為什么它會永遠打印1個?
此代碼工作正常只寫i
一次:
int i = 1;
void setup() {
Serial.begin(9600);
}
void loop() {
if(i == 1){
Serial.print(i);
}
i = 2;
}
假設在loop()
中調用loop()
:
i
將在第一個示例中溢出。
在第二個示例中,在第一次迭代后將其固定為2
的值。
您可能還需要添加一些延遲,因為有時您可能會錯過第一個Serial.println();
。
像這樣:
int i = 1;
void setup() {
Serial.begin(9600);
delay(1000); //wait for one second
}
希望能幫助到你!
如果您想讓第一個示例的工作時間更長。 將“ int”更改為“ long”。
int只能存儲2個字節。 -32,768至32,767。 您將很快達到這個數字。 long可以存儲4個字節。 -2,147,483,648至2,147,483,647。 這將需要花些時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.