vc não pode usar o i++, na realida vc tem que usar i + 1 que não altera o valor d I,
por se usar i ++ ou ++ i
vai increventar seu i e interferir no loop.
é mesmo que i = i +1
se no loop o I é 1 no prox vai ser 3
Mutxo obrigado, mas qual a lógica, inverti os dois i++ para ++i…
E eu não entendi…
Demys_Cota
não, esquece está parte, não tinha visto que o I era utilizado no For e sendo assim não podemos utilizar i++ ou ++i,
porque seria o mesmo que incrementar o I ou seja I + I + 1, o que interferiria no for.
matheuslmota
Tiago_KA:
Mutxo obrigado, mas qual a lógica, inverti os dois i++ para ++i…
E eu não entendi…
i++ => primeiro usa a variável e depois incrementa. Por exemplo:
int i = 2;
int j = i++; // j=2, e depois da atribuição, i = 3
++i => primeiro atribui depois usa a variável. Por exemplo
int i = 2;
j = ++i; // j = 3 e i = 3
Outra coisa, ao postarem, usem a tag CODE.
Seu código fica assim:
public boolean emOrdem()
{
for (int i = 0; i < qtdUsadas; i++)
{
if(a[i] > a[i+1]) return false; // Se um elemento for maior que seu sucessor, retorna falso
}
return true; // Se chegou aqui, então não existe nenhum elemento maior que seu sucessor. Retorna true
}
T
Tiago_KA
Obrigado cara,
Portanto um método para verificar um vetor ou melhor um array, se este é crescente seria:
Mutxo obrigado, mas qual a lógica, inverti os dois i++ para ++i…
E eu não entendi…
i++ => primeiro usa a variável e depois incrementa. Por exemplo:
int i = 2;
int j = i++; // j=2, e depois da atribuição, i = 3
++i => primeiro atribui depois usa a variável. Por exemplo
int i = 2;
j = ++i; // j = 3 e i = 3
Outra coisa, ao postarem, usem a tag CODE.
Seu código fica assim:
public boolean emOrdem()
{
for (int i = 0; i < qtdUsadas; i++)
{
if(a[i] > a[i+1]) return false; // Se um elemento for maior que seu sucessor, retorna falso
}
return true; // Se chegou aqui, então não existe nenhum elemento maior que seu sucessor. Retorna true
}
Valeuzasso, excelente explicação agradeço a todos aew!
Muito obrigado mesmo!
Demys_Cota
matheuslmota
Tiago_KA:
Obrigado cara,
Portanto um método para verificar um vetor ou melhor um array, se este é crescente seria:
public boolean emOrdem()
{
boolean ordem = false;
for (int i = 0; i < qtdUsadas; i++)
{
if(a[i] <= a[i+1])
{
ordem = true;
}
else
{
ordem = false;
}
}
return ordem;
}
}
Assim está errado. Por exemplo, usando o vetor 8, 5, 10.
Na primeira iteração ele vê que 8 <= 5 é falso e ordem = false. Na segunda iteração, ele vê que 5 <= 10 e ordem = true. Depois, ele retorna true e isso está errado, visto que há um elemento desordenado. O correto é fazer o contrário, procurar um elemento desordenado e caso ache, retorna falso imediatamente. Se não achar nenhum elemento desordenado, retorna true. Isso é o que meu código faz. Entendeu?
Demys_Cota
matheusImotaestácerto!
matheuslmota
Cara, é para usar a tag code quando for postar código. E a tag code não é usada entre <> e sim entre []