【问题标题】:Difference between java and JavaScript for loopjava和JavaScript for循环的区别
【发布时间】:2021-09-17 14:20:35
【问题描述】:

Java 程序

public class HelloWorld {
    public static void main(String []args){        
    String str="XYZ ";     
    int i;
        for(i=0;i<5;i++){
            str+= + i; 
            System.out.println(str);      
        }
    }
}

//Java 输出

XYZ 0
XYZ 01
XYZ 012
XYZ 0123
XYZ 01234

Javascript 程序

let str="XYZ ";
for(let i=0;i<5;i++){
   str+=i+"<br>";
   document.getElementById("demo1").innerHTML=str;
}

JavaScipt 输出

XYZ 0
1
2
3
4

我的疑问是: Java 中的 for 循环和 JavaScript 有什么区别。谁能解释 Javascript 中 for 循环 的流程? 提前致谢。

【问题讨论】:

  • document.getElementById("demo1").innerHTML=str; 这每次都会覆盖一个变量。 System.out.println(str); 这不是。

标签: javascript java for-loop difference


【解决方案1】:

在 JavaScript 中,您将demo1 容器的全部内容设置为新字符串。在迭代结束时,元素只包含字符串中的最终值。

相比之下,在 Java 中,您在每次迭代时记录并查看字符串,而不仅仅是最终值。

如果您在 JavaScript 中添加新的 HTML 标记,而不是覆盖容器中先前的内容,您将看到相同的输出:

let str = "XYZ ";
for (let i = 0; i < 5; i++) {
  str += i;
  demo1.innerHTML += str + '<br>';
}
&lt;pre id="demo1"&gt;&lt;/pre&gt;

或者,要更改 Java 以显示原始 JavaScript 的功能(没有换行符),只需检查最终字符串:

for (i = 0; i < 5; i++) {
    str += + i;
}
System.out.println(str);

【讨论】:

    【解决方案2】:

    是的,您没有在 Java 中的字符串连接末尾包含换行符。所以如果你想匹配JS,那就是:

    public class HelloWorld{
        public static void main(String []args){        
        String str="XYZ ";     
        int i;
        for (i = 0; i < 5; i++) {
            str += + i + "\n";
        }
        System.out.println(str);
        }
    }
    

    \n”相当于 BR 换行符。此外,正如其他人所提到的,您以不同的方式查看结果,println 每次调用时都会附加换行符,因此 ln

    输出:

    > java -cp . HelloWorld
    XYZ 0
    1
    2
    3
    4
    

    在那里让我陷入了一个循环,以为我错过了一些关于 for 循环的东西!它们的行为相同,只是在 JS 端包含换行符,而不是在 Java 端。

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2011-07-19
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2011-02-11
      • 2014-07-07
      相关资源
      最近更新 更多