Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Poligno

[DÚVIDA] Laço "While"

Recommended Posts

Boa tarde pessoal,tenho que fazer um algoritmo que diga se um vetor é ou não um palíndromo.Eu usei um laço while para faze-lo,só que ele dá o seguinte erro: quando eu defino como o numero de casas do vetor um numero par,o laço while para quando sua condição é atendida,agora se eu definir como numero de casas um numero ímpar o laço while continua ,mesmo depois de sua condição ter sido atendida.

Código:

 

package javaapplication2;

import java.util.Random;
import java.util.Scanner;

public class Vetor_Palindromo {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
int vet[] = new int[5]; //ALTERE AQUI
int i;

for(i=0;i<vet.length;i++){
vet=scan.nextInt();
}

System.out.println(palindromo(vet));

}

public static boolean palindromo(int vetor[]){
int i=0,j=vetor.length;
//System.out.println(j);
int cont=0;

while(i!=j){
j--;
System.out.println("j="+j);
if(vetor==vetor[j]) cont++;
System.out.println("cont="+cont);
i++;
System.out.println("i="+i);
//esses tres println foram usados para encontrar o erro
}

int aux=vetor.length/2;
if(cont==aux) return true;
else return false;
}
}

Erro acusado: http://prntscr.com/af8j31

 

PS:Eu sei que erro está dizendo que eu estou tentando acessar uma casa inválida do vetor,porém o laço while era pra ter sido interrompido antes disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal,tenho que fazer um algoritmo que diga se um vetor é ou não um palíndromo.Eu usei um laço while para faze-lo,só que ele dá o seguinte erro: quando eu defino como o numero de casas do vetor um numero par,o laço while para quando sua condição é atendida,agora se eu definir como numero de casas um numero ímpar o laço while continua ,mesmo depois de sua condição ter sido atendida.

Código:

Erro acusado: http://prntscr.com/af8j31

 

PS:Eu sei que erro está dizendo que eu estou tentando acessar uma casa inválida do vetor,porém o laço while era pra ter sido interrompido antes disso.

while(i<j){

Compartilhar este post


Link para o post
Compartilhar em outros sites
while(i<j){

 

Deu certo amigo,mas eu não quero a resposta,eu quero saber por que o laço while "me obedece" quando o indice max do vetor é par mas ñ 'me obedece' quando este é ímpar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[REPOST]

 

 

 

Deu certo amigo,mas eu não quero a resposta,eu quero saber por que o laço while "me obedece" quando o indice max do vetor é par mas ñ 'me obedece' quando este é ímpar.

 

Até pq "i<j" e "i!=j" é praticamente a mesma coisa,certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

[REPOST]

 

 

 

Até pq "i<j" e "i!=j" é praticamente a mesma coisa,certo?

Não é a mesma.. coisa...

 

!= isso quer dizer que quando os indices.. forem iguais.. o while para...

mais como vc informou um impar e i será par o while nao tem fim...

por isso passa...

 

então o correto e < menor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é a mesma.. coisa...

 

!= isso quer dizer que quando os indices.. forem iguais.. o while para...

mais como você informou um impar e i será par o while nao tem fim...

por isso passa...

 

então o correto e < menor...

verdade!

ñ tinha reparado nisso.

Valeu bruxo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.