java - 如何让这个 for 循环正常工作?

标签 java for-loop

我不知道如何在这个 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) == 5i == 6

在上面的示例中,(i + 1) == users.size()i == users.size() - 1 将解析为 (i + 1) == 5i == 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/

相关文章:

java - 如何使用 Spring Boot Batch 在不同的类中提供不同的 Bean

java - 实现功能接口(interface)以使用 InputStreams

Java - 将 ArrayList 中的字符串与 .txt 文件中的所有文本进行比较

if-statement - 使用批处理文件将多个 .csv 文件逐行合并为一个 .csv 文件

python - 如何计算累积总和直到达到阈值并在达到阈值后重置它考虑Python中的pandas数据帧中的组?

python - 如何使用 iterrows 和 iteritems 更快地运行 pandas for 循环

java - While循环NoSuchElementException整数输入java

java - 预期的方法调用

python - 如何使用 python 将 else 语句作为 lambda 的一部分添加到 for 循环内的 if

windows - for 循环和定界符