gpt4 book ai didi

java - 抛硬币代码中的双重答案

转载 作者:行者123 更新时间:2023-12-01 22:05:28 25 4
gpt4 key购买 nike

我是 Java 新手。我接到一项任务,要编写一个生成随机数的程序。然后,程序必须将“正面”或“反面”分配给该数字,并要求用户猜测它是正面还是反面。如果用户输入正确的答案,程序应该响应“猜得好!”。如果用户输入错误的答案,程序应该响应“oops!”。

我的程序无法正常运行。无论用户猜测什么,它总是输出“good猜测!”。当它选择“tails”并且用户猜测错误时,它另外输出“oops!”。当用户猜测“正面”时,程序永远不会输出“哎呀!”完全没有反应。

这是我写的:

import java.util.Scanner;
public class HeadsOrTails {
public static void main(String[] args) {
int num1 = (int)(Math.random() * 2);
System.out.println ("Enter heads or tails");
Scanner user_input = new Scanner (System.in);
String flip = user_input.next();

if (flip.equals ("heads") && (num1 == 1)) {
}
System.out.println ("good guess!");
{
if (flip.equals ("tails") && (num1 == 1)) {
System.out.println ("Oops!");
if (flip.equals ("heads") && (num1 == 0)) {
System.out.println ("oops!");
if (flip.equals ("heads") && (num1 == 0)) {
System.out.println ("good guess!");
}
}
}

最佳答案

正确缩进后,您发布的代码如下所示:

import java.util.Scanner;


public class HeadsOrTails {
public static void main(String[] args) {

int num1 = (int)(Math.random() * 2);

System.out.println ("Enter heads or tails");
Scanner user_input = new Scanner (System.in);

String flip = user_input.next();


if (flip.equals ("heads") && (num1 == 1)) {
}
System.out.println ("good guess!"); {
if (flip.equals ("tails") && (num1 == 1)) {
System.out.println ("Oops!");
if (flip.equals ("heads") && (num1 == 0)) {
System.out.println ("oops!");
if (flip.equals ("heads") && (num1 == 0)) {
System.out.println ("good guess!");
}
}
}
}
}

现在可以清楚地看到您的代码没有完全按照您希望的方式执行。

正如 @Erwin Bolwidt 正确指出的那样,第一个“正确猜测”输出被错误地放置在 if block 之外。

其余的 if block 都在不应该嵌套的情况下进行了嵌套 - 它们也应该是 if-then-else block 。

请看一下这篇文章:The if-then and if-then-else Statements

关于java - 抛硬币代码中的双重答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com