gpt4 book ai didi

javascript - 为什么这会导致无限循环?

转载 作者:行者123 更新时间:2023-12-02 18:15:19 24 4
gpt4 key购买 nike

该代码旨在使用 JavaScript 和表格生成日历。月份和日期是荷兰语,但应该可以理解。不知何故,这以无限循环结束,而当天数更大或与我的数组长度相同时,它应该停止。

它应该为每个月创建 12 个表,然后用该月的天数填充这些表。它还没有完成,因为它假设每天都从周日开始。我想我还应该指出,我还没有那么有经验。

var months = new Array();
months[0] = "januari";
months[1] = "februari";
months[2] = "maart";
months[3] = "april";
months[4] = "mei";
months[5] = "juni";
months[6] = "juli";
months[7] = "augustus";
months[8] = "september";
months[9] = "oktober";
months[10] = "november";
months[11] = "december";

var maxDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var weekDays = ["zo", "ma", "di", "wo", "do", "vr", "za"];
var kalender = 0;
var days = 1;
var weekDaysNumber = 0;


while(kalender < months.length){
document.write("<table><tr>");
document.write("<th>" + months[kalender] + "</th></tr>");
document.write("<tr>");
while (weekDaysNumber < 7){
document.write("<td>" + weekDays + "</td>";
weekDaysNumber++;
}
document.write("</tr>");
while(days < maxDays[kalender]){
document.write("<td>" + days + "</td>");

var rows = 0;
if(rows == 7 && days !== maxDays[kalender]){
document.write("</tr>");
document.write("<tr>");
rows = 1;
}

rows++;
days++;

}

if(days == maxDays[kalender]){
document.write("</tr></table>");
kalender++;
weekDaysNumber=0;

}

}

最佳答案

因为您从未将 days 变量重置为 1,所以在第二个外循环中,它永远不等于 maxDays[kalendar] 。很可能存在其他问题,代码看起来比必要的复杂得多,但这就是无限循环的明显原因:当days达到31,您打破第一个循环,开始第二个循环,并且由于 31 大于 28 ,因此永远不会进入内部循环,并且您的 == maxDays[kalendar] 从未输入过。

<小时/>

您的浏览器内置了功能齐全的调试器。您可以使用它来设置断点、单步执行代码、检查变量等。

关于javascript - 为什么这会导致无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350532/

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