You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让代码块运行至连续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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:24:16