2014-01-05 78 views
-3

爲什麼這是行不通的。它一直在工作,我不知道我改變了什麼。我沒有得到任何錯誤,for循環只是沒有運行。循環運行之前和之後的東西。FOR聲明注意工作

for(int i=2; i==length; i++){ 
    note = note.concat(args[i]); 
    sender.sendMessage("Args[i]: " + args[i]); 
    sender.sendMessage("Note: " + note); 
} 

長度是一個整數,它保存1d數組的長度。當長度大於等於3時會發生此錯誤(不要擔心長度不會意味着什麼時候執行任何操作)。

+2

爲什麼你認爲我們應該知道'長度'是什麼?然而,我們並沒有讀懂頭腦。此外,由於'i!= length',它不會循環,所以你需要'<'代替。 – Maroun

+2

如果for循環未運行,那意味着在開始第一次迭代之前,長度不等於2。你的意思是說:for(int i = 2; i

+0

如果循環不運行,則循環條件不滿足。此外,在這種情況下,使用'for'對於'=='沒有意義,因爲循環只運行一次,因此代碼實際上與if(length == 2){...}'相同。 – l4mpi

回答

-1

循環正在運行,而i == length。這意味着要循環重複執行多次,變量length必須在每次迭代中更改,否則i != length。這似乎不是一個合法的解決方案,您可能打算輸入i < length(在for循環中,平等很少用作終止語句)。

for(int i=2; i==length; i++){ 
    // This will iterate if length keeps changing to be equal to i. 
    // Since you are not changing the value of length in the loop, you are 
    // expecting it to be changed asynchronously somewhere else in the code. 
} 
+0

不是DV,但其值不會改變。他在比較,而不是分配。 – Maroun

+0

你問的問題,而不是回答他們 - 這是什麼意見。此外,顯然這是正確的,循環運行只要'我==長度',這是基本的編程知識... – l4mpi

+0

@ l4mpi當然它是基本的編程知識,但我不明白爲什麼它是錯誤的提及它既然問題本身就是很基礎的知識呢? –