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

Java石头剪刀布程序报symbol not found错误,求排查解决

解决石头剪刀布程序中的"symbol not found"错误

你的代码里有几个导致编译器报错的问题,逐个说明:

  • 变量未声明类型:Java是强类型语言,使用变量前必须明确声明类型。你直接赋值给yourHand和computerHand,但没指定它们是int类型,编译器无法识别这些符号。
  • 大小写错误:Java对大小写敏感,system.out.println里的s必须大写成System,否则编译器找不到system这个类。
  • 逻辑分支混乱:最后一个else仅和它紧邻的if绑定,导致某些胜负场景下,平局的输出也会被触发,逻辑不符合预期。

修正后的完整代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {  
        Scanner in = new Scanner(System.in);
        System.out.println("\tMenu\n\n(1) Rock\n(2) Paper\n(3) Scissors" + "\n\nEnter Your Hand (1, 2, or 3): ");
        // 声明int类型变量并初始化
        int yourHand = in.nextInt();
        int computerHand = ((int)(Math.random() * 100) % 3 + 1);
        
        // 用if-else if-else构建互斥的逻辑分支
        if ((yourHand == 1 && computerHand == 3) || 
            (yourHand == 2 && computerHand == 1) || 
            (yourHand == 3 && computerHand == 2)) {
            System.out.println("omg yay you win");
        } else if ((yourHand == 3 && computerHand == 1) || 
                   (yourHand == 1 && computerHand == 2) || 
                   (yourHand == 2 && computerHand == 3)) {
            System.out.println("imagine losing.. embarrassing");
        } else {
            // 修正System的大小写
            System.out.println("tie? idk maybe lol");
        }
        in.close(); // 关闭Scanner资源,避免内存泄漏
    }
}

关键修正说明

  1. 给yourHand和computerHand加上int类型声明,符合Java变量声明规范;
  2. 修复System的大小写错误,匹配Java标准库的类名;
  3. 将分散的if语句合并为if-else if-else结构,确保同一时间只会执行一个分支,避免逻辑冲突;
  4. 添加in.close()关闭输入流,养成良好的资源管理习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:49:58