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
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: “);
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) {
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:
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′: }