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