Java 将布尔值集成到数组参数中

Java 将布尔值集成到数组参数中,java,arrays,Java,Arrays,我需要使用用户输入的参数(大小、最高随机数、最低随机数)创建一个随机数数组,还需要包含一个布尔值,指示最高随机数是否包含在随机数中。布尔值是导致运行时错误的原因。我不知道出了什么问题。我尝试过if语句和switch语句,但我认为问题不存在。如果你们能帮我,我真的很感激。我来这里问了很多问题,但这是我第一次发帖,如果我的礼节不对,我很抱歉。以下是我迄今为止的代码: import java.util.*; public class Question1 { public static void m

我需要使用用户输入的参数(大小、最高随机数、最低随机数)创建一个随机数数组,还需要包含一个布尔值,指示最高随机数是否包含在随机数中。布尔值是导致运行时错误的原因。我不知道出了什么问题。我尝试过if语句和switch语句,但我认为问题不存在。如果你们能帮我,我真的很感激。我来这里问了很多问题,但这是我第一次发帖,如果我的礼节不对,我很抱歉。以下是我迄今为止的代码:

import  java.util.*;

public class Question1 {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    boolean yesNo = false;
    String yesOrNo;
    int highest;

    System.out.print("Please enter array size: ");
    int size = scan.nextInt();

    System.out.print("Please enter highest number: ");
    int high = scan.nextInt();

    System.out.print("Please enter lowest number: ");
    int low = scan.nextInt();

    System.out.print("Would you like to include " + high +" into the list of random numbers(Yes or No)?");
    yesOrNo = scan.nextLine();

    switch (yesOrNo.toUpperCase()) {
    case "YES":
        yesNo = true;
        break;
    }
    if (yesNo==true)
        high=high+1;

    randomNumberGenerator(size,high,low);
    }


public static void randomNumberGenerator(int size, int high, int low) {
    int[] randomNums = new int [size];
    for(int count = 0; count<randomNums.length; count++) {
        Random generator = new Random();
        int num = generator.nextInt(high) + (low);
        randomNums[count] = num;
    }
    System.out.print(Arrays.toString(randomNums));
 }  
 }
在“YesOrNo=scan.nextLine”之后写上“scan.nextLine();”,它将显示“是/否”行

System.out.print("Would you like to include " + high + " into the list of random numbers(Yes or No)?");
yesOrNo = scan.next();
由于前面的
nextLine()
方法,将跳过
nextLine()


更多说明-

什么是运行时错误?我认为运行时错误是在运行程序时发生的错误。这听起来是个明智的回答,但这是我能解释的最好的方式。我使用的是eclipes IDE,它可以捕获我犯下的任何编译错误,但不能捕获运行时错误。代码中的所有内容都应该正常工作,但有些地方出了问题。程序正在忽略程序的布尔部分。它不等待“是”或“否”响应,只会自动吐出arrayTry.next()而不是nextLine()。您需要添加以下代码行:
scan.nextLine()直接在这行代码之后:
int low=scan.nextInt()
以便使用由用户条目点击的ENTER键提供的换行符(\n)。如果您不这样做,那么下面使用nextLine()方法的提示符将使用它,并且由于它是换行符,您的提示符将自动填充一个空字符串(“”),给人以跳过(绕过)的印象。我将尝试这样做。谢谢你。它应该直接位于
int low=scan.nextInt()之后行。是,正确。在yesOrNo之后仍然有效,但是是。
yes,true。在yesOrNo之后仍然有效,但是是的。
这是什么意思?你觉得你的想法仍然有效吗?一个简单的测试:
String yesOrNo=scan.nextLine();scan.nextLine();System.out.println(“yesOrNo变量=“+yesOrNo”)。您可以告诉我控制台是否在yesOrNo变量=
之后显示布尔值。如果使用您的答案,则yesOrNo变量将始终保留空字符串(“”)。这意味着switch语句将永远不会满足,布尔值yesNo变量将始终为默认值false。因此,应将其标记为重复项。我更改了它,但现在在“是/否”问题上按enter键后,什么也没有发生。没有打印数组为我工作
请输入数组大小:5请输入最大数:10请输入最小数:3您想在随机数列表中包括10(是或否)?是[10,13,3,13,12]
ahh。。我很沮丧。我已经更改了扫描输入很多次了,但是我想不出来。我会复制并超越我发布的原始代码,只做你建议的更改。希望这能奏效。谢谢,它现在可以工作了,但是我仍然得到一个运行时错误。程序中有一个bug,即使它正在运行
System.out.print("Would you like to include " + high + " into the list of random numbers(Yes or No)?");
yesOrNo = scan.next();