Java 用于线程内的循环赢得';不匹配类似的while循环行为
我刚开始在Java中使用线程,在线程中使用for循环时遇到了问题 当我在线程内使用for循环时,由于某种原因,我无法看到发送到屏幕的输出 当我使用while循环时,它就像一个符咒 非工作代码如下所示:Java 用于线程内的循环赢得';不匹配类似的while循环行为,java,multithreading,for-loop,while-loop,Java,Multithreading,For Loop,While Loop,我刚开始在Java中使用线程,在线程中使用for循环时遇到了问题 当我在线程内使用for循环时,由于某种原因,我无法看到发送到屏幕的输出 当我使用while循环时,它就像一个符咒 非工作代码如下所示: public class ActionsToPerformInThread implements Runnable { private String string; public ActionsToPerformInThread(String string){ t
public class ActionsToPerformInThread implements Runnable {
private String string;
public ActionsToPerformInThread(String string){
this.string = string;
}
public void run() {
for (int i = 1; i == 10 ; i++) {
System.out.println(i);
}
}
}
呼叫代码:
public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(new ActionsToPerformInThread("Hello"));
Thread thread2 = new Thread(new ActionsToPerformInThread("World"));
thread1.start();
thread2.start();
}
}
我的问题是:为什么当我用while循环替换for循环并尝试将相同的输出打印到屏幕上时,它不起作用
我试图调试它,但它似乎停止了程序之前得到的部分,它的打印(没有异常或错误)
你是说
i <= 10
i
你是说
i <= 10
i您的for循环中有一个愚蠢的输入错误:
应大致理解为:
for (int i = 1; i <= 10 ; i++) {
...
}
for(int i=1;i您的for循环中有一个愚蠢的输入错误:
应大致理解为:
for (int i = 1; i <= 10 ; i++) {
...
}
for(int i=1;iA典型的for循环在Java中看起来像这样:
//pseudo code
for( variable ; condition ; increment or decrement){
//code to be executed...
}
工作原理:
首先声明变量
(也可以在循环外声明)
然后检查您的条件
,如果它是真的
,则执行循环中的代码,否则如果它第一次失败,甚至不会输入循环
然后您的增量或减量完成,然后再次执行步骤2。。。
这会反复进行,直到条件
为false
,然后循环退出
在您的条件为i==10
的情况下,这当然会在第一次检查时失败,因为i
仍然是1
并且尚未更改,因此for循环中的代码甚至没有执行,根本没有进入循环
要解决这个问题:您需要将条件
更改为iA典型的for循环在Java中看起来像这样:
//pseudo code
for( variable ; condition ; increment or decrement){
//code to be executed...
}
工作原理:
首先声明变量
(也可以在循环外声明)
然后检查您的条件
,如果它是真的
,则执行循环中的代码,否则如果它第一次失败,甚至不会输入循环
然后您的增量或减量完成,然后再次执行步骤2。。。
这会反复进行,直到条件
为false
,然后循环退出
在您的条件为i==10
的情况下,这当然会在第一次检查时失败,因为i
仍然是1
并且尚未更改,因此for循环中的代码甚至没有执行,根本没有进入循环
要解决此问题:您需要将条件
更改为i