Aprenda de forma simples e objetiva

A leitura de dados em um programa é uma atividade imprescin

Resposta para a questão: A leitura de dados em um programa é uma atividade imprescindível na programação. Entretanto, ela não é livre de possíveis problemas. O programa a seguir requer que o usuário digite um valor inteiro (int) e imprime o valor fornecido em seguida: Entretanto, caso o usuário digite algum valor que não seja um número inteiro (uma letra, por exemplo), o programa finaliza com um erro (InputMismatchException), como mostrado a seguir: ​​​​​​​ Qual das alternativas a seguir apresenta uma solução para esse problema, não causando um erro de execução quando um valor de tipo incorreto for digitado pelo usuário? O programa deve gerar uma mensagem indicando o erro de utilização do programa, mas não deve gerar o erro acima

Publicidade

Conteúdo do artigo

Pergunta:

A leitura de dados em um programa é uma atividade imprescindível na programação. Entretanto, ela não é livre de possíveis problemas. O programa a seguir requer que o usuário digite um valor inteiro (int) e imprime o valor fornecido em seguida: Entretanto, caso o usuário digite algum valor que não seja um número inteiro (uma letra, por exemplo), o programa finaliza com um erro (InputMismatchException), como mostrado a seguir: ​​​​​​​ Qual das alternativas a seguir apresenta uma solução para esse problema, não causando um erro de execução quando um valor de tipo incorreto for digitado pelo usuário? O programa deve gerar uma mensagem indicando o erro de utilização do programa, mas não deve gerar o erro acima

Respostas


A alternativa correta para resolver o problema e evitar o erro de execução quando um valor de tipo incorreto é digitado pelo usuário é a letra “a”.

Código criado

import java.util.Scanner;

public class Exercicio04Solucao {

  public static void main(String[] args) {

      Scanner entrada = new Scanner(System.in);

      System.out.print(“Digite um valor inteiro: “);

Publicidade

      if (entrada.hasNextInt() == false) {

          System.out.println(“ERRO! Digite um valor inteiro!”);

      } else {

          int valor = entrada.nextInt();

          System.out.println(“Você digitou o valor: ” + valor);

      }

  }

}

Nessa solução, entrada.hasNextInt() é utilizado para verificar se o próximo token de entrada é um inteiro antes de tentar lê-lo com entrada.nextInt(). Isso evita o InputMismatchException quando um valor incorreto é digitado.

#SPJ1

Pergunta completa

A leitura de dados em um programa é uma atividade imprescindível na programação. Entretanto, ela não é livre de possíveis problemas. O programa a seguir requer que o usuário digite um valor inteiro (int) e imprime o valor fornecido em seguida:

Código 1

Arquivo: Exercicio04Problema.java

01: import java.util.Scanner;

02:

03: public class Exercicio04Problema {

04: public static void main(String[] args) {

Publicidade

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: int valor = entrada.nextInt();

08: System.out.println(“Você digitou o valor: ” + valor);

09: }

10: }

A leitura de dados em um programa é uma atividade imprescindível na programação. Entretanto, ela não é livre de possíveis problemas. O programa a seguir requer que o usuário digite um valor inteiro (int) e imprime o valor fornecido em seguida:

Entretanto, caso o usuário digite algum valor que não seja um número inteiro (uma letra, por exemplo), o programa finaliza com um erro (InputMismatchException), como mostrado a seguir:

Código 2

Digite um valor inteiro: A

Exception in thread “main” java.util.InputMismatchException

at java.base/java.util.Scanner.throwFor(Scanner.java:939)

at java.base/java.util.Scanner.next(Scanner.java:1594)

at java.base/java.util.Scanner.nextInt(Scanner.java:2258)

at java.base/java.util.Scanner.nextInt(Scanner.java:2212)

at Exercicio04Problema.main(Exercicio04Problema.java:7)

Qual das alternativas a seguir apresenta uma solução para esse problema, não causando um erro de execução quando um valor de tipo incorreto for digitado pelo usuário? O programa deve gerar uma mensagem indicando o erro de utilização do programa, mas não deve gerar o erro acima.

a)

Arquivo: Exercicio04Solucao.java

01: import java.util.Scanner;

02:

03: public class Exercicio04Solucao {

04: public static void main(String[] args) {

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: if (entrada.hasNextInt() == false) {

08: System.out.println(“ERRO! Digite um valor inteiro!”);

09: } else {

10: int valor = entrada.nextInt();

11: System.out.println(“Você digitou o valor: ” + valor);

12: }

13: }

14: }

b)

Arquivo: Exercicio04Solucao.java

01: import java.util.Scanner;

02:

Publicidade

03: public class Exercicio04Solucao {

04: public static void main(String[] args) {

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: int valor = entrada.next();

08: System.out.println(“Você digitou o valor: ” +

valor);

09: }

10: }

11: }

c)

Arquivo: Exercicio04Solucao.java

01: import java.util.Scanner;

02:

03: public class Exercicio04Solucao {

04: public static void main(String[] args) {

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: entrada.hasNextInt();

08: int valor = entrada.nextInt();

09: System.out.println(“Você digitou o valor: ” + valor);

10: }

11: }

12: }

d)

Arquivo: Exercicio04Solucao.java

01: import java.util.Scanner;

02:

03: public class Exercicio04Solucao {

04: public static void main(String[] args) {

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: int valor = entrada.nextInt();

08: if (entrada.hasNextInt() == false) {

09: System.out.println(“ERRO! Digite um valor inteiro!”);

10: } else {

11: System.out.println(“Você digitou o valor: ” + valor);

12: }

13: }

14: }

e)

Arquivo: Exercicio04Solucao.java

01: import java.util.Scanner;

02:

03: public class Exercicio04Solucao {

04: public static void main(String[] args) {

05: Scanner entrada = new Scanner(System.in);

06: System.out.print(“Digite um valor inteiro: “);

07: int valor = entrada.hasNextInt();

08: System.out.println(“Você digitou o valor: ” + valor);

09: }

10: }

1′: }

Publicidade
Share the Post:
Revisado e Atualizado por

Guilherme

Desenvolvedor Full Stack com formação em Análise e Desenvolvimento de Sistemas (ADS). Especialista em tecnologia e SEO, dedicando a transformar informações complexas em guias práticos e acessíveis no portal Toda Matéria.

Confira também: