2013-05-06 36 views
1

請幫我解釋這個for循環:字節變量循環

for (byte color_bit = 23 ; color_bit != 255 ; color_bit--) { 
    ...do something 
} 

我想我明白(從谷歌搜索& StackOverflow上)這就是color_bit「這裏是一個無符號的變量。所以這意味着循環將從23倒數到0。但是接下來會發生什麼?它是否嘗試從255開始並繼續倒計時?但因爲測試是「!= 255」,它會停止?

在我看來,這似乎是邏輯,但我使用的工具(Arduino IDE)沒有調試器,所以我無法通過代碼來查看值。

回答

1

你的循環將會看到bit_color = 23..0(24次迭代),如果'byte'是8位無符號的。當color_bit = 255時,循環停止。 HTH。

0

你可以添加一個串口打印線,如下圖所示:

for (byte color_bit = 23 ; color_bit != 255 ; color_bit--) { 
     Serial.print(bit_color, DEC); 
} 

要測試/調試計數序列。

+0

謝謝傑夫。由於它的代碼最終在Arduino芯片上,所以沒有控制檯。但是,按照你的建議,我在Visual Studio C#編譯器中設置了代碼並逐步完成了它。 我發現,在循環步驟降爲零之後,color_bit = 255的下一次迭代(以及循環結束)。 – AndrewN 2013-05-07 19:13:34

+0

由於您使用的是Arduino IDE,因此您應該可以使用內置串行監視器來查看由Serial.print命令創建的輸出。它使用與用於將代碼編程到電路板上相同的串行端口和電纜。查看Communication-> ASCII表格下的示例。 – Jeff 2013-05-09 21:00:47

+0

果然!感謝您的提示! – AndrewN 2013-05-10 22:17:34