如何让代码块运行至连续3次获相同结果?含JavaScript连续掷Blue需求
解决两个代码循环问题的方案
嘿,很高兴能帮你搞定这两个问题!咱们一步步来分析和实现~
问题1:如何运行一段代码块,直至连续3次得到相同的执行结果?
核心思路是跟踪连续相同结果的次数:
- 先定义变量记录上一次的结果,再用一个计数器统计连续相同的次数
- 每次执行代码块后,对比当前结果和上一次:
- 如果相同,计数器加1;如果不同,把计数器重置为1(当前结果是新的连续起点)
- 当计数器达到3时,停止循环
举个通用示例(比如生成0-1的随机数,直到连续3次相同):
let lastResult; let consecutiveCount = 0; while (consecutiveCount < 3) { // 这里替换成你需要重复执行的代码块 const currentResult = Math.floor(Math.random() * 2); console.log(`当前结果:${currentResult}`); // 更新连续计数 if (currentResult === lastResult) { consecutiveCount++; } else { consecutiveCount = 1; } lastResult = currentResult; // 更新上一次结果记录 } console.log("已连续3次得到相同结果!");
问题2:修改给定代码,使其运行直至连续3次掷出"Blue"
针对你提供的代码,我们需要添加连续次数的跟踪逻辑,具体修改如下:
var cards = ['Blue', 'Yellow']; var consecutiveBlueCount = 0; // 统计连续掷出Blue的次数 while (consecutiveBlueCount < 3) { var randomNumber = Math.floor(Math.random() * 2); var currentCard = cards[randomNumber]; console.log(currentCard); // 输出每次掷出的卡片 // 更新连续Blue计数 if (currentCard === 'Blue') { consecutiveBlueCount++; } else { consecutiveBlueCount = 0; // 掷出非Blue,重置计数 } } console.log('连续3次掷出Blue!');
关键修改点说明:
- 新增
consecutiveBlueCount变量,专门跟踪连续掷出Blue的次数 - 循环条件从
currentCard !== 'Blue'改为consecutiveBlueCount < 3,确保直到连续3次才停止 - 把生成卡片的逻辑移到循环内部,保证每次循环都重新随机选卡
- 每次掷卡后根据结果更新计数,非Blue时重置为0
内容的提问来源于stack exchange,提问作者Catarina Figueiredo
相关产品推荐
相关产品推荐

