TRY BUGADO
17/11/2016
0
Galera to com um problema aqui no meu codigo, quando é digitado uma letra no vetor ele trata e mostra a mensagem "Informe apenas numeros!", porem ele finaliza o programa e é para continuar da onde o vetor parou. Ex: 1 2 3 X "Informe apenas numeros!" 4 5 6.... Se alguém puder me ajudar agradeço.
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 cont2 = 0, 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[i] = teclado.nextInt(); cont2++; if (A[i] <= 0) { b[i] = A[i]; 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 = true; teclado.nextLine();//limpa o buffer }// fim do catch }// fim do while }// fim do metodo }// fim do progroma
Lucas Silva
Curtir tópico
+ 0
Responder
Post mais votado
17/11/2016
Olá Lucas!
Verifica no código a baixo a correção.
Verifica no código a baixo a correção.
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 cont2 = 0, cont = 0; boolean flag = true; while (flag) { try { System.out.println("Informe 10 valores para o vetor!"); for (int i = 0; i < A.length; i++) { A[i] = teclado.nextInt(); cont2++; if (A[i] <= 0) { b[i] = A[i]; 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 // Necessário definir aqui dentro em que momento a flag será false. // Defini aqui para não ficar em lup infinito. flag = false; } catch (InputMismatchException e) { System.out.println("Informe apenas numeros!"); teclado.nextLine();//limpa o buffer } // fim do catch }// fim do while }// fim do metodo }
Angelo Santos
Responder
Mais Posts
Clique aqui para fazer login e interagir na Comunidade :)