[RESOLVIDO] Comando FOR

6 respostas
williamdasflores

Boa noite Galera…
Alguem poderia me explicar ou talvez ate desenhar…rsrsrs
nao estou entendo isso…

for(int i = 0; i < array.length -1; i++)

Não estou entendendo esse .length -1??
ele pega uma posição menor?

6 Respostas

rebinho

williamdasflores:
Boa noite Galera…
Alguem poderia me explicar ou talvez ate desenhar…rsrsrs
nao estou entendo isso…

for(int i = 0; i < array.length -1; i++)

Não estou entendendo esse .length -1??
ele pega uma posição menor?


Eai williamdasflores blz?
Cara funciona da seguinte forma… Vamos dizer que você tenha uma Array de 10 posições:
Mais apesar da array ter 10 posições a 1ª posição é a posição 0 (ZERO). Ou seja temos as posições 0,1,2,3,4,5,6,7,8,9 Certo?
Ai quando você pede o tamanho do array usando o lenght ele irá te informar quantas posições a Array tem. No caso 10!!

No exemplo que você mostro suponhamos que a Array também tenha 10 posições… Se mandar o FOR ir de 0 até 10 terá sido ONZE posições. E isso daria erro pois a Array só tem 10 posições (a ultima é a posição 9).

Mais voltando ao seu exemplo ele nunca vai passar pela ultima posição do Array pois se coloca como < ele vai apenas até a posição final, e com o -1 ele não chegaria a passar pela ultima posição!

Caso queria mostrar/acessar/etc todas posições faça simplemente i < array.length ou então i <= array.length - 1

Falo abraço!

rafaelviny

praticamente uma aula rebinho mas prefira sempre este modelo williamdasflores

i < array.length

:slight_smile:

Lucas_Abbatepaolo

so como complemento vc pode usar o loop for aprimorado

int [] array = new int[10];

for(int a:array){
//seu codigo aqui
}

valew

williamdasflores

Rebinho,

Entendi…então

for(int i = 0; i < array.length; i++)

é a mesma coisa de

for(int i = 0; i <= array.length -1; i++)

e se for um array ao contrario…tipo

for(int i = array.length -1; i >= 0; i--)
//eu não poderia usar
for(int i < array.length; i >= 0; i--)
rebinho

williamdasflores:
Rebinho,

Entendi…então

for(int i = 0; i < array.length; i++)

é a mesma coisa de

for(int i = 0; i <= array.length -1; i++)

e se for um array ao contrario…tipo

for(int i = array.length -1; i >= 0; i--) //eu não poderia usar for(int i < array.length; i >= 0; i--)

Isso exatamente parceiro… Porque o tamanho da Array pode ser 10. Mas você não tem o indice até 10 e sim até 9.
E se usasse:

for(int i = array.length; i >= 0; i--)Na primeira “volta/rodada” do FOR ele tentaria usar array[i] que éa mesma coisa que array[10]. Ai daria erro porque essa posição não existe.
Ai nesse caso teria que colocar o -1. Ou usar direto na Array tipo, array[i-1], mas pra que complicar néh?!

Abraço! :wink:

williamdasflores

Hahaha…entendi
Vlw!!!

Criado 5 de abril de 2011
Ultima resposta 5 de abr. de 2011
Respostas 6
Participantes 4