[RESOLVIDO] Comando FOR

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?

[quote=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?[/quote]
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!

praticamente uma aula rebinho mas prefira sempre este modelo williamdasflores

i < array.length 

:slight_smile:

so como complemento vc pode usar o loop for aprimorado

int [] array = new int[10];

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

valew

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--)

[quote=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--) [/quote]

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:

Hahaha…entendi
Vlw!!!