请帮助。
此代码不起作用:
for (i = 0; i == userWhoIsInLineArray.GetNumberOfUsersOnline() - 1; i++) {
Log.d("DATA-----|", "UserName- "
+ userWhoIsInLineArray.GetUserName(i)
+ " UserHref- "
+ userWhoIsInLineArray.GetUserAccountHref(i));
}
当我写这篇文章时,所有的工作!
while(i != userWhoIsInLineArray.GetNumberOfUsersOnline() - 1) {
Log.d("DATA-----|", "UserName- "
+ userWhoIsInLineArray.GetUserName(i)
+ " UserHref- "
+ userWhoIsInLineArray.GetUserAccountHref(i));
i++;
}
为什么会这样?
答案 0 :(得分:0)
我怀疑你是否打算在for循环测试中使用相等的连续性?
这一位:
i == userWhoIsInLineArray.GetNumberOfUsersOnline()-1
也许你的意思是另一个比较运算符?
答案 1 :(得分:0)
你应该写为:
for (i = 0; i < userWhoIsInLineArray.GetNumberOfUsersOnline(); i++) {
Log.d("DATA-----|", "UserName- "
+ userWhoIsInLineArray.GetUserName(i)
+ " UserHref- "
+ userWhoIsInLineArray.GetUserAccountHref(i));
}
只有当for子句的第二句为真时,才执行for-block。因此,当变量i
小于 userWhoIsInLineArray.GetNumberOfUsersOnline()
时,它必须为真。
cf 1. i == userWhoIsInLineArray.GetNumberOfUsersOnline()
表示仅当变量i
等于userWhoIsInLineArray.GetNumberOfUsersOnline()
时才是真的。除非userWhoIsInLineArray.GetNumberOfUsersOnline()
为0
,否则第一次循环会导致错误。
cf 2.同样,你的while循环最好重写为:
int i = 0;
while (i < userWhoIsInLineArray.GetNumberOfUsersOnline()) {
Log.d("DATA-----|", "UserName- "
+ userWhoIsInLineArray.GetUserName(i)
+ " UserHref- "
+ userWhoIsInLineArray.GetUserAccountHref(i));
i++;
}