我不知道如何在这个 for 循环的最后一个循环中执行特定的操作:
String msg = "---Player List, Count:" + users.size() + "---" + brln;
for (int i = 0; i < users.size(); i++) {
if((i - 1) == users.size()){
msg += "--::" + users.get(i).name; //Do this at the last loop
return; //returns the void
}
msg += "--::" + users.get(i).name + brln; // do this by default
}
你能帮我让它工作吗?
最佳答案
您的条件是错误的:不要使用 (i - 1) == users.size()
使用 (i + 1) == users.size()
或i == users.size() - 1
.
基本上 (i - 1) == users.size()
将匹配最后一个元素之后的元素(显然不存在),即对于大小为 5 的列表,您会得到(i - 1) == 5
或 i == 6
。
在上面的示例中,(i + 1) == users.size()
和 i == users.size() - 1
将解析为 (i + 1) == 5
和 i == 5 - 1
两者都会产生 i == 4
,这是列表中的最后一个索引.
编辑:顺便说一句,你的循环仍然很奇怪。您基本上似乎在除最后一个元素之外的每个元素之后添加了换行符。为什么不把它改成这样:
String msg = "---Player List, Count:" + users.size() + "---" + brln;
for (int i = 0; i < users.size(); i++) {
if( i > 0){
msg += brln;
}
msg += "--::" + users.get(i).name;
}
这将在除第一行之外的每一行之前添加换行符。请注意,情况变得更加容易。
关于java - 如何让这个 for 循环正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093441/