gpt4 book ai didi

java - 数组 - 超出随机数范围

转载 作者:行者123 更新时间:2023-12-02 05:29:10 25 4
gpt4 key购买 nike

我有一个名为Clinica的类(class)

import java.util.Random;

public class Clinica {
//atributos
private int[][] calendariosEnf;
private int[][] calendariosMed;

//Constructor
public Clinica(){
calendariosEnf = new int[12][31];
calendariosMed = new int[12][31];
}

//Sets y gets
//Calendario para las enfermeras
public void setCalendariosEnf(int[][] calendariosEnf){
this.calendariosEnf = calendariosEnf;
}
public int[][] getCalendariosEnf(){
return calendariosEnf;
}

//Calendario para los medicos
public void setCalendariosMed(int[][] calendariosMed){
this.calendariosMed = calendariosMed;
}
public int[][] getCalendariosMed(){
return calendariosMed;
}

Listas lista1 = new Listas();
public void agregarCalEnf(){
Random rand = new Random();
int min = 1;
int max = 5;
for(int m = 0; m < 11; m++){
for(int d = 0; d < 30; d++){
int randomNum = rand.nextInt((max - min) + 1) + min;
calendariosEnf[d][m] = randomNum;
}
}
}
}

如果我尝试打印一个文件,例如 calendariosEnf[1][4],我会收到以下消息

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12

任何人都可以帮助我找到索引错误的地方吗?

我创建了 Prueba 类,以检查程序是否正常工作...

public class Prueba {

public static void main(String[] args) {
// TODO Auto-generated method stub

Listas list = new Listas();
Clinica clin = new Clinica();
list.agregarMedicos();
clin.agregarCalEnf();
System.out.println(clin.getCalendariosEnf()[1][4]);
}
}

最佳答案

      for(int m = 0; m < 11; m++){
for(int d = 0; d < 30; d++){
int randomNum = rand.nextInt((max - min) + 1) + min;
calendariosEnf[d][m] = randomNum;
}
}

d 不能大于 11,否则超出范围。

m 可以从 0 到 11(包括),d 可以从 0 到 30(包括)强>)。

    for(int m = 0; m < 12; m++){
for(int d = 0; d < 31; d++){
int randomNum = rand.nextInt((max - min) + 1) + min;
calendariosEnf[m][d] = randomNum;
}
}

关于java - 数组 - 超出随机数范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25707035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com