使 continue 语句在 do while 循环中工作
Posted
技术标签:
【中文标题】使 continue 语句在 do while 循环中工作【英文标题】:Making continue statement work in a do while loop 【发布时间】:2017-04-07 20:15:25 【问题描述】:我需要帮助使我的 continue 语句在 do-while 循环中工作。如果一天中的时间无效,我想忽略卡片的数量,然后转到循环的下一个迭代。 现在,如果我没有输入 'Morning'、'Afternoon' 或 'Evening' 作为 'time',则循环结束。
这是我的代码:
// DECLARE VARIABLES
var time; // timestamp on batch
var count; // number of cards in batch
var repeat; // whether or not the program will repeat
var m = 0; // initial number of Morning cards
var a = 0; // initial number of Afternoon cards
var e = 0; // initial number of Evening cards
var total = 0; // initial number of all cards
//START LOOP
do
time = prompt("Is the batch's timestamp 'Morning', 'Afternoon' or 'Evening'?"); // Input value for time
count = prompt("How many cards are in this batch?"); // Input value for count
count = parseFloat(count); // return 'count' as a number
total = total + count; // calculate total number of cards
if (time == "Morning")
m = m + count; // if time is 'Morning', add the # of the cards from this batch to the # of cards from all 'Morning' batches
else if (time == "Afternoon")
a = a + count; // if time is 'Afternoon', add the # of the cards from this batch to the # of cards from all 'Afternoon' batches
else if (time == "Evening")
e = e + count; // if time is 'Evening', add the # of the cards from this batch to the # of cards from all 'Evening' batches
else
continue;
repeat = prompt("Do you have more batches to enter? Enter 'Y' or 'N'"); // User chooses whether to end the loop
while (repeat == "Y");
// DISPLAY RESULTS
document.write("Total number of cards: " + total + "<br/>");
document.write("Morning cards: " + m + "<br/>");
document.write("Afternoon cards: " + a + "<br/>");
document.write("Evening cards: " + e);
PS:这是给我的电脑课的。这是我们的活动: “在这个任务中,你将伪编码一个算法,该算法按一天中的时间累积客户调查卡。你需要询问用户一天中的时间(早上、下午和晚上)以及卡片的数量该批次。用户需要能够在一天中的同一时间输入多个批次。您将需要在循环中使用单独的累加器来跟踪卡片,因为循环继续其迭代。”
【问题讨论】:
看来你只需要将var repeat
初始化为"Y"
。
尝试重新表述您的要求——“如果我的时间有效,我想......”然后您可能会重新构建条件逻辑并找到问题的答案。
@Emily 你了解调试器的使用了吗?如果你逐行浏览你的代码,我想你会看到你的问题
【参考方案1】:
问题是您的while
条件失败。如果用户输入了一个非值输入,那么 continue 会被命中并且你的代码会跳下来评估条件while (repeat == 'Y')
此时,repeat 等于 null,因为从未调用过更改它的提示。
因为null != 'Y'
你的循环结束了
【讨论】:
为什么还要继续?以上是关于使 continue 语句在 do while 循环中工作的主要内容,如果未能解决你的问题,请参考以下文章