Ir ao conteúdo
  • Cadastre-se
Lucas Emanuel Silva

Try com loop infinito nao sei parar

Recommended Posts

Galera to com um problema aqui procurei na net ja e tu mas, nao achei nada que resolvesse meu problema na hora que o usuario digita  uma letra o programa informa "digite apenas numeros" porém ele entra em um loop infinito e eu nao sei como parar. Bom vejam o codigo ae.

 

import java.util.InputMismatchException;
import java.util.Scanner;

public class Questao1 {

    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int A[] = new int[10];
        int b[] = new int[10];
        int cont = 0;
        boolean flag = false;
        while(!flag){
        try{
            System.out.println("Informe 10 valores para o vetor!");
            for (int i = 0; i < A.length; i++) {
                A = teclado.nextInt();
                if (A <= 0) {
                    b = A;
                    cont++;
                }// fim do if
            }// fim do for
            for (int j = 0; j < 10; j++) {
                System.out.println("Valores no vetor A: " + A[j]);
            }// fim do for
            System.out.println("-----------------------------------------");
            for (int l = 0; l < cont; l++) {
                System.out.println("Valores no vetor B: " + b[l]);
            }// fim do for
        } catch (InputMismatchException e) {
            System.out.println("Informe apenas numeros!");
             flag = false;// para ter certeza.
        }// fim do catch
        }// fim do while
    }// fim do metodo
}// fim do progroma
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um erro ai no seu código:

int A[] = new int[10]; //variável A é um vetor de inteiros
...= teclado.nextInt(); //você está setando um valor inteiro quando a variável é um vetor

O correto seria você atribuir o valor para uma posição do vetor ... assim:

A[i] = teclado.nextInt();

Esse é o motivo do InputMismatchException ...

Existem outros locais onde você faz a atribuição direta entre vetores ... o ideal é fazer por valor pra evitar esse tipo de erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×