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

如何在JavaScript中实现五局制石头剪刀布循环并统计总分

石头剪刀布5局对战实现方案

你的问题核心是变量作用域和循环逻辑的问题:分数变量如果在循环内部声明,每次循环都会被重置为0,自然无法累加。下面是修复后的完整实现,附关键逻辑说明:

完整运行代码

// 初始化全局分数:必须放在循环外部,避免每次循环重置
let playerScore = 0;
let computerScore = 0;

// for循环执行5次对战
for (let round = 1; round <= 5; round++) {
    // 获取玩家输入,去除首尾空格
    const playerChoice = prompt(`第${round}局:请输入「石头」「剪刀」「布」`).trim();
    
    // 校验输入有效性,无效则重新进行当前回合
    if (!['石头', '剪刀', '布'].includes(playerChoice)) {
        alert('输入无效,请重新输入石头、剪刀或布');
        round--; // 回退回合数,避免浪费对战次数
        continue;
    }

    // 电脑随机生成选择
    const choices = ['石头', '剪刀', '布'];
    const computerChoice = choices[Math.floor(Math.random() * choices.length)];

    // 判断单局胜负并更新分数
    if (playerChoice === computerChoice) {
        alert(`第${round}局:平局!你出${playerChoice},电脑出${computerChoice}`);
    } else if (
        (playerChoice === '石头' && computerChoice === '剪刀') ||
        (playerChoice === '剪刀' && computerChoice === '布') ||
        (playerChoice === '布' && computerChoice === '石头')
    ) {
        playerScore++;
        alert(`第${round}局:你赢了!当前比分:你 ${playerScore} - ${computerScore} 电脑`);
    } else {
        computerScore++;
        alert(`第${round}局:你输了!当前比分:你 ${playerScore} - ${computerScore} 电脑`);
    }
}

// 5局结束后统计最终结果
console.log('=== 5局对战结束 ===');
if (playerScore > computerScore) {
    console.log(`你是最终胜者!总分:你 ${playerScore} - ${computerScore} 电脑`);
    alert(`你是最终胜者!总分:你 ${playerScore} - ${computerScore} 电脑`);
} else if (computerScore > playerScore) {
    console.log(`电脑是最终胜者!总分:你 ${playerScore} - ${computerScore} 电脑`);
    alert(`电脑是最终胜者!总分:你 ${playerScore} - ${computerScore} 电脑`);
} else {
    console.log(`最终平局!总分:你 ${playerScore} - ${computerScore} 电脑`);
    alert(`最终平局!总分:你 ${playerScore} - ${computerScore} 电脑`);
}

关键修复点说明

  1. 分数变量作用域
    把playerScore和computerScore声明在for循环外部,这样每次循环只会更新变量值,不会重新初始化。如果放在循环内部,每次循环都会重置为0,这就是你当前分数始终为0的原因。

  2. 循环逻辑控制
    使用for (let round = 1; round <=5; round++)确保严格执行5次对战;如果玩家输入无效,通过round--回退回合数,避免浪费对战次数。

  3. 分数累加逻辑
    每局胜负判断后,直接对外部的分数变量执行++操作,确保分数持续累加。

  4. 最终结果统计
    循环结束后,对比玩家和电脑的总分,输出全局胜负结果。

内容的提问来源于stack exchange,提问作者Rommel Decillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:31:14