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资源,避免内存泄漏 } }
关键修正说明
- 给
yourHand和computerHand加上int类型声明,符合Java变量声明规范; - 修复
System的大小写错误,匹配Java标准库的类名; - 将分散的
if语句合并为if-else if-else结构,确保同一时间只会执行一个分支,避免逻辑冲突; - 添加
in.close()关闭输入流,养成良好的资源管理习惯。
内容的提问来源于stack exchange,提问作者mofnezz
相关产品推荐
相关产品推荐

