2014-01-05 44 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当然它是基本的编程知识,但我不明白为什么它是错误的提及它既然问题本身就是很基础的知识呢? –