当前位置: 首页 > 知识库问答 >
问题:

Java如何将随机整数传递到我的开关Java

姬昀
2023-03-14

我只是不明白为什么我得到一个空指针异常??这个程序找到了第一个案例,说我没有指向任何东西??

public String computerChoice()
{   
    int i = ran.nextInt(4);
    String str;
    switch (i){
    case 1:  
        str = "paper";
    case 2: 
        str = "rock";
    case 3: 
        str = "scissors";
    default:
        str = "not valid";   
    }
    return str;
} 

共有1个答案

聂建茗
2023-03-14

代码中有几个问题:

  1. 它没有显示随机实例运行已初始化,这应该是NullPointerException
  2. 的根本原因
  3. switch语句的编写没有breakreturn,因此,在修复NPE后,将始终返回“无效”
  4. 在这个石头剪刀石生成器中,只应生成并使用三个有效选项

可能的修复方法:

  1. 使用Java 12开关表达式语法:
java prettyprint-override">
public String computerChoice() {   
    return switch (new Random().nextInt(3)) {  // values in range [0..2]
        case 0 -> "paper";
        case 1 -> "rock";
        default -> "scissors"; // the only remaining value 2 should be default
    }
} 
public String computerChoice() {   
    switch (new Random().nextInt(3)) {  // values in range [0..2]
        case 0: return "paper";
        case 1: return "rock";
        default: return "scissors";
    }
} 
private static final String PRS = {"paper", "rock", "scissors"};

public String computerChoice() {   
    return PRS[new Random().nextInt(PRS.length)];
} 
 类似资料:
  • 在控制器中(也可能是Main或另一个文件,我不确定这一切是如何工作的),我们有以下内容: 在Scene Bilder生成的FXML中,如下所示:

  • 因此,我想要做的是使用Gradle运行我的Java应用程序,但也要将一个。csv&.xml文件传递给我的主类,以便在我的bufferedReader中使用它们&我不知道应该怎么做。我的应用程序不是构建到jar,它应该是用gradle运行任务运行的。我希望用户能够指定他们自己要使用的xml和csv文件(在命令行中),然后运行Java应用程序,而不是询问应用程序中文件的路径。例如,让我们使用这行代码:

  • 问题内容: 我在C 中有一个方法,该方法将双精度数组作为参数。我从Java调用此方法,需要传递一个双精度数组。C 例程读取和修改数组的值,而我需要Java中的那些更新后的值。我该怎么做呢? 例如,使用C ++例程: 和Java代码: 我猜不能像上面的调用那样对myMethod进行调用…还是可以吗?而在Swig中进行这项工作所需的是什么。如果我无法进行上述调用,如何将我的值获取到C ++代码? 问题

  • 这是一个输入示例:< code>1002372我需要得到这样的输出:< code>0012237我需要使用循环和布尔代数。我已经将< code>int转换成了< code>String,并尝试以此作为开始: 程序不需要先运行并找到所有的零,而是按顺序打印数字。 如何一次检查和打印所有一个整数?

  • 问题内容: 我们已经设置了一些参数来在Jenkins中执行构建(使用简单的“参数化构建”设置)。作业被设置为Maven测试。有没有办法以编程方式将这些参数传递到我们的Java代码中?我们需要基于通过Jenkins设置的参数来执行某些更新功能。 问题答案: 是的,您可以通过Maven执行将Jenkins参数传递给Java代码,如下所示: 请注意, $ JOB_PARAM_1 将捕获Jenkins上设

  • 问题内容: 我正在尝试使用Java 8中的新Stream API生成整数的随机数组。但是我还不清楚该API。所以我需要帮助。这是我的代码。 但是此代码返回对象数组。怎么了 问题答案: 如果您需要原始值,请不要调用boxing,因为那样会产生对象。 只需使用which返回一个: