gpt4 book ai didi

java - for循环并不是每次循环时都加1

转载 作者:行者123 更新时间:2023-11-30 02:12:58 24 4
gpt4 key购买 nike

如果这是一个愚蠢的问题,我真的很抱歉,我只是需要别人的观点。我有这段代码,其中我将打印到客户端到服务器的输出流。由于某种原因,for 循环不会在每次循环时给 i 加 1。每当我运行它时,我都会得到:

线程[i]:线程[Thread-2,5,main]线程[i].clientName:比尔 maxClientsCount:15 i:0
线程[i]: 线程[Thread-2,5,main] 线程[i].clientName: Bill maxClientsCount: 15 i: 0

但它只打印两次。每当我在客户端中输入内容时,for 循环都会再次运行,i 为 1。因此,我从中得到的是 for 循环会等待,直到 if 循环完成运行,直到它运行再次。但情况不应该是这样,因为它应该只检查 restart 是否不等于 "",然后继续 for 循环。如果有人已经问过这个问题,我提前表示抱歉,我已经尝试寻找这个问题,但没有成功。您应该记住的一个细节是,在客户端关闭窗口之前,catch 不会捕获任何内容。

代码如下:

while (true) {
restart = clientIn;
if (!restart.equals("")) {
break;
}
int j = 0;
try {
for (int i = 0; i < maxClientsCount; i++) {
System.out.println("threads[i]: " + threads[i] + "threads[i].clientName: "
+ threads[i].clientName + "maxClientsCount: " + maxClientsCount + "i: " + i);
if (threads[i] != null && threads[i].clientName != null) {
j = i + 1;
System.out.println(threads[i].is.readLine());
}
}
} catch (IOException e) {
e.printStackTrace();
break;
}
}
System.out.println("broke");

最佳答案

所以我想我发现了你的代码中的问题,你每次都在读取客户端输入,并在每次用户输入内容时触发 for 循环,但是 while 后第一行的 if 子句是错误的,你'如果用户输入除“”以外的任何内容,则会中断 while 循环,如下所示:

if (!restart.equals("")) {
break;
}

如果用户没有输入类似以下内容,您应该做的是打破循环:

if (restart.equals("")) {
break;
}

请从您这边测试一下,看看它是否有效。

关于java - for循环并不是每次循环时都加1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com