Onde meu array sai dos limites?
-
11-12-2019 - |
Pergunta
Estou tentando escrever um algoritmo para isso:São 100 alunos e 100 armários.O primeiro aluno começa no primeiro armário e abre todos.O próximo aluno, aluno dois, começa no segundo armário e fecha a cada segundo armário se estiver aberto e vice-versa.O terceiro aluno começa no terceiro armário e, a cada terceiro armário, repete o processo.Escrevi algo que acredito que deveria funcionar, mas meu array está ultrapassando os limites e não vejo como:
public static void main(String[] args)
{
int startingStudents = 1;
int lockersToCheck = 1;
int lockersPosition = 1;
boolean[] lockers = new boolean[101];
//Cycles through 100 students
for(int students = startingStudents; startingStudents <= 100; students++)
{
//What each student does
while(lockersToCheck <= 100)
{
//If its closed, open
if(lockers[lockersToCheck] == false)
{
lockers[lockersToCheck] = true;
}
//If its open, close
else
{
lockers[lockersToCheck] = false;
}
//Which locker they should be at
lockersToCheck += lockersPosition;
}
//Zero out to start at the right locker
lockersToCheck = 0;
//Where the next student starts
lockersPosition += students;
//Make sure the next student starts there
lockersToCheck = lockersPosition;
}
for(int n = 1; n <= 100; n++)
{
System.out.print(lockers[n] + " " + n);
}
}
Obrigado por qualquer ajuda!
Solução
for(int alunos = iniciandoAlunos; começandoAlunos <= 100;estudantes++)
deveria estar
for(int alunos = iniciandoAlunos; estudantes<= 100;estudantes++)
Outras dicas
É a sua terminação de loop
for(int students = startingStudents; startingStudents <= 100; students++)
Deveria estar
for(int students = 1; students <= 100; students++)
Portanto, acho que você não está recebendo uma ArrayIndexOutOfBoundsException, mas uma Heap-Space-Exception.