有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用if语句可以取消其他代码。(爪哇)

我对Java编程相当陌生。我想做一个乐透节目。以下是代码: 打包。nutella

import java.util.Scanner;

public class Lotto {

    @SuppressWarnings("resource")

    public static void main(String[] args) {

        try {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter A Number Between 1-20!");
            int choice = scanner.nextInt();

            if (choice > 20)
                System.out.print("Please Only Pick Numbers Between 1-20!");

            int b = (int) (Math.random() * 20) +1;
            if (choice == b) 
                System.out.print("You Win!");
            else
                System.out.print("You Lost! The correct answer was " + b);


        }

        catch(Exception E) {
            System.out.print("Your Answer Must Be Numeric!");
        }
    } 
}

现在,这部分如果我主要关心的是:

如果(选项>;20) 系统出来打印(“请只选择1-20之间的数字!”)

我想让它这样,如果有人把数字超过20,它将打印该消息。现在这部分确实有效,但当我把数字放在20以上时,它仍在玩乐透游戏。我想这样做,如果他们把他们的数字高于20,它将不会玩游戏,并输入该消息。 如何做到这一点


共 (1) 个答案

  1. # 1 楼答案

    可以使用do {...} while();loop最优雅地完成。在开始时,用户必须始终输入一个数字,因此loop必须至少执行一次。这就是do {...} while();{}派上用场的地方。您可以在循环的开头显示消息,然后读入用户输入。如果在可接受的范围内,loop永远不会重新执行,代码将继续。但是,如果不可接受,我们将重新执行loop,直到得到一个可接受的值

    下面是我将如何处理这个问题:

        Scanner scanner = new Scanner(System.in);
        int choice = 0;
        do {
            System.out.print("Please Pick A Number Between 1-20!");
            choice = scanner.nextInt();
        } while(choice > 20 || choice < 1);
    

    还值得注意的是,您的消息声明“数字在1-20之间”,但您的代码只检查choice < 20,因此如果用户输入小于20的任何内容,都将被接受。这包括0、负数,当然还有有效的数字范围。我在示例中添加了|| choice < 1检查