JavaApplication1.promptemp(JavaApplication1.java:11)和JavaApplication1.main(JavaApplication1.java:41)上的ArrayIndexOutOfBoundsException
我正在努力获得用户给出的平均温度输入,这是我目前为止的代码,但我得到的是“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:-1”,我不知道我哪里做错了JavaApplication1.promptemp(JavaApplication1.java:11)和JavaApplication1.main(JavaApplication1.java:41)上的ArrayIndexOutOfBoundsException,java,arrays,exception,Java,Arrays,Exception,我正在努力获得用户给出的平均温度输入,这是我目前为止的代码,但我得到的是“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:-1”,我不知道我哪里做错了 import javax.swing.JOptionPane; public class JavaApplication1 { static double [] weekdays= new double[6]; static String[] weekdaysNames =
import javax.swing.JOptionPane;
public class JavaApplication1 {
static double [] weekdays= new double[6];
static String[] weekdaysNames = new String[]{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
public static void promptTemp(){
for(int i=0;i<weekdays.length;i++){
for(int j=6;j<weekdaysNames.length;j--){
weekdays[i] =Double.valueOf(JOptionPane.showInputDialog(null, "Please enter" + weekdaysNames[j] + "temperature?",
"TempApp", JOptionPane.QUESTION_MESSAGE));
}
}
}
public static double calcAverage(double [] value){
double sum=0.0;
for(int i=0;i<value.length;i++){
sum=sum+value[i];
}
double average = sum/(value.length);
return average;
}
public static void main(String[] args) {
promptTemp();
double k=calcAverage(weekdays);
System.out.println(k);
}
}
import javax.swing.JOptionPane;
公共类JavaApplication1{
静态双精度[]工作日=新双精度[6];
静态字符串[]weekdaysNames=新字符串[]{“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”};
公共静态无效PrompTemp(){
for(int i=0;i第二个for循环就是问题所在。j从6开始倒计时。但是j总是小于weekdaysNames.length,并且它将变为-无穷大,这就是为什么要得到ArrayIndexOutOfBounds
for(int i=0;i<weekdays.length;i++){
for(int j=6;j<weekdaysNames.length;j--){
for(int i=0;i在第二个for循环中出现问题,该循环始终小于工作日的name.length,从而导致ArrayIndexOutOfBounds
。
解决此问题的一个简单方法是将工作日数组的大小更改为[7]
并仅使用一个for循环。我尝试为循环提供各种逻辑,但仍然得到ava.lang.ArrayIndexOutOfBoundsException:-1错误,请您帮助,这就是为什么我将您的问题关闭为重复问题。不要做实验。阅读链接问题中的内容并了解其含义!您可以通过und解决此问题了解你的循环在做什么