为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 if-else 语句没有打印它们应该打印的内容?

为什么我的 if-else 语句没有打印它们应该打印的内容?

UYOU 2021-11-11 14:11:40
我正在做一个学校编码项目,其中(使用 Java 博士)我编写了一个石头、纸、剪刀游戏。我的游戏要求用户投掷,同时随机生成计算机的投掷。下面的代码代表了我的(不完整的)确定游戏获胜者的方法。它应该首先检查两次投掷是否相同,然后,如果不相同,则比较两次投掷,看谁赢了。最后的 else 语句是一个备份,以防用户输入石头、纸或剪刀以外的答案。目前,字符串 compAnswer 被硬编码为“rock”。    if (userAnswer == compAnswer){    System.out.println("Huh. A tie. That was... disappointing.");  win = 2;} else if (compAnswer == "rock"){ { if (userAnswer == "paper") {    System.out.println("Curses! I threw rock and lost!");    win = 0;  } else if (userAnswer == "scissors") {    System.out.println("Hah! I threw rock and crushed your scissors!");    win = 1;  }}} else {  System.out.println("...You cheater! That's not a legal throw! Off to the fire and brimstone with you!");} 但是,当我运行我的程序时,不会打印任何内容——当 userAnswer 得到“纸”或“剪刀”时,甚至当答案是假的时,都不会打印。我在这里不知所措-为什么我的打印语句没有被触发?
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

== 测试参考相等性和


.equals() 值相等的测试。


因此,将字符串与equals()方法进行比较:


if (userAnswer.equals(compAnswer)) {}

所以你的代码会像这样:


if (userAnswer.equals(compAnswer)) {

            System.out.println("Huh. A tie. That was... disappointing.");

            win = 2;

        } else if ("rock".equals(compAnswer)) {

            {

                if ("paper".equals(userAnswer)) {

                    System.out.println("Curses! I threw rock and lost!");

                    win = 0;

                } else if ("scissors".equals(userAnswer)) {

                    System.out.println("Hah! I threw rock and crushed your scissors!");

                    win = 1;

                }

            }

        } else {

            System.out.println("...You cheater! That's not a legal throw! Off to the fire and brimstone with you!");

        }


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信