好吧,所以我遇到了一個小問題,我不完全確定如何正確地說出問題,所以標題可能有點誤導。此外,我遇到的代碼只是較大代碼的一小部分,所以我會盡我所能解釋我的情況。將局部變量中的動態int值存儲爲靜態?
基本上,這段代碼是一個for循環,什麼我試圖讓它做的是每次一定數量的循環運行做出了一定的變量遞減。
int column = h - 1;
if (array[i] == 1)
{
while (d < column - 1)
{
r.lower();
d++
}
if (d == column - 1)
{
r.drop();
column -=1;
}
}
對不起,如果它看起來有點神祕。請忘記d和r現在的變量,並關注列和h。
我試圖做的是取高度減1(h - 1)的值並將其存儲在本地變量列,然後將其減1(列 - = 1)所以該值將在下次循環運行和IF語句條件滿足時更新。
這裏的問題是高度是一個動態變量 - 在代碼的其餘部分中,它總是在不斷變化,因此,我的代碼只會在第一次運行時運行,並且第二次運行時, t似乎都在減少。
所以我的問題是:我怎麼能存儲高度的當前值到一個局部變量,並使其靜態的(保持相同的值在整個循環),這樣我可以成功地減小了嗎?
很抱歉,如果這是解釋不當,請,如果我使用的任何條款錯誤指正。
謝謝你的時間!
有一件事你誤會了!儘管我確實說過我目前擁有的代碼只會在第一次運行時運行,但我並不是說第一次運行WHOLE循環,但是第一次調用* column *變量時,也就是IF(array [i] == 1)聲明是真實的。 或者這只是我誤解你的解決方案。無論哪種方式,我有點不確定如何實現你的代碼到我的! – antonlab 2014-09-04 10:46:45
NEVERMIND!我得到它的工作!非常感謝你:) – antonlab 2014-09-04 11:22:18
編輯:它適用於*列*變量,但我沒有提到,我有一個副本的代碼正好在我發佈的一個下面,並且一切都是相同的,除了IF語句是(數組[ i] == 2),而WHILE循環中的參數正在調用* column2 *。 因此,如果我嘗試調用tempHeight * column2 *,它不會是正確的高度。對於column2, – antonlab 2014-09-04 11:42:44