Poderiam me explicar a função desse trecho:
vetor[i-1] = i;
Aqui está o código:
public static void main(String[] args) {
int vetor [] = new int [5];
for (int i =1; i<=5; i++){
vetor[i-1] = i; // < ---- Aqui
}
for (int i =0; i<=vetor.length-1;i++){
System.out.println(vetor[i]);
Fiquei um pouco na dúvida sobre a função dele… Enfim, agradeço desde já!
Vetores em java são indexados com base 0
, ou seja, a primeira posição é 0
.
No primeiro laço, você está iterando de 1 à 5 (inclusivamente), ou seja:
1, 2, 3, 4, 5
Porém, as posições do vetor são:
0, 1, 2, 3, 4
Se você utilizar vetor[i]
ao invés de vetor[i-1]
, quando i
for igual a 5
, vai acontecer uma exceção, mais especificamente ArrayIndexOutOfBoundsException
, pois você está acessando uma posição do vetor que não existe (a vetor[5]
).
O código não está errado, mas geralmente não se itera de 1 até o final inclusivamente, mas de 0 até o final menos 1. Se você quer que o vetor tenha os números de 1 à 5, pode fazer assim para seguir a convenção:
for (int i = 0; i < 5; i++) {
vetor[i] = i + 1; // posicao i recebe i + 1, ou seja, o vetor vai virar [1, 2, 3, 4, 5]
}
1 curtida