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

Java剪刀石头布游戏While循环问题:判定错误与输入跳过

Java剪刀石头布游戏问题修复

问题1:全判定失败的修复

你的胜负判定逻辑核心错误在字符串比较方式:Java中==用于比较字符串的内存引用地址,而非内容。用户输入的字符串和你定义的常量字符串(比如"Rock")即使内容一致,内存地址也不同,==会返回false,导致所有情况都走到else分支显示失败。

必须把所有PI == "XXX"和PI == RGW的判断改成PI.equals("XXX")和PI.equals(RGW)。另外你的随机数生成代码有语法错误:int RGrand.nextInt(3);应该写成int RG = rand.nextInt(3);,否则RG变量未定义根本无法编译。

问题2:第二次循环跳过输入的修复

用input.next().charAt(0)读取Y/N时,只会读取输入的字符,不会处理输入后的换行符。下一次循环调用input.nextLine()时,会直接读取缓冲区中残留的换行符,导致PI为空字符串,进而直接触发失败判定。

解决方法是在读取完PA后,加一行input.nextLine()清空缓冲区的换行符。

修复后的完整代码

import java.util.Scanner;
import java.util.Random;

public class RPS {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random rand = new Random();
        char PA;
        do {
            String RGW;
            System.out.println("Rock Paper or Scissors?");
            String PI = input.nextLine();
            // 修复随机数生成的语法错误
            int RG = rand.nextInt(3);
            if (RG == 0) {
                RGW = "Rock";
            } else if (RG == 1) {
                RGW = "Paper";
            } else {
                RGW = "Scissors";
            }
            System.out.println("Opponents Move: " + RGW + "\nYour Move: " + PI);

            // 修复字符串比较,改用equals()方法
            if (PI.equals(RGW)) {
                System.out.println("It's a Tie!");
            } else if ((PI.equals("Rock") && RGW.equals("Scissors")) 
                    || (PI.equals("Scissors") && RGW.equals("Paper")) 
                    || (PI.equals("Paper") && RGW.equals("Rock"))) {
                System.out.println("You Win!");
            } else {
                System.out.println("You Lose!");
            }
            System.out.println("Play Again? Y/N");
            PA = input.next().charAt(0);
            // 吃掉输入缓冲区残留的换行符,避免下一次nextLine()读取空内容
            input.nextLine();
        } while (PA == 'Y' || PA == 'y'); // 用字符常量替代ASCII码,代码更易读
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:47:27