Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于线程内的循环赢得';不匹配类似的while循环行为_Java_Multithreading_For Loop_While Loop - Fatal编程技术网

Java 用于线程内的循环赢得';不匹配类似的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

我刚开始在Java中使用线程,在线程中使用for循环时遇到了问题

当我在线程内使用for循环时,由于某种原因,我无法看到发送到屏幕的输出

当我使用while循环时,它就像一个符咒

非工作代码如下所示:

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