Usando input.nextInput();

5 respostas
sliipzinn

Estava acompanhando o livro: Java Como Programar (6ª Edição) e fazendo passo a passo os exemplos junto com o texto para poder ir vendo como funcionava cada programa exemplo. Até então quer chego na página 33, Figura 2.7. Que segue:

//Addition.java
//Programa de adição que exibe a soma de dois números.
import java.util.Scanner; //programa utiliza a classe Scanner

public class Addition{
    
    //método principal inicia a execução do aplicativo em Java
    public static void main(String args[]){
        
        //cria Scanner para obter entrada a partir da janela de comando
        Scanner input = new Scanner(System.in);
        
        int number1;    //primeiro número a somar
        int number2;    //segundo número a somar
        int sum;        //soma de number1 e number2
        
        System.out.print("Enter first integer: "); //prompt
        number1 = input.nextInt(); //lê o primeiro número fornecido pelo usuário
        
        System.out.print("Enter second integer: "); //prompt
        number2 = input.nextInt(); //lê o segundo número fornecido pelo usuário
        
        sum = number1 + number2; //soma os números
        
        System.out.printf("Sum is %d\n", sum); //exibe a soma 
        
    } //fim do método principal
    
} //fim da classe Addition

dei um javac Addition.java tudo certo compilou, java Addition e consegui rodar. Ai então acontece isso com o programa já rodando:

java Addition
Enter first integer: 2
Enter second integer: 3
Exception in thread "main" java.util.InputMismatchException
	at java.util.Scanner.throwFor(Unknown Source)
	at java.util.Scanner.next(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)
	at Addition.main(Addition.java:21)

Coloco o primeiro número tudo certo, quando coloco o segundo acontece esse erro. Já tentei reescrever todo o código, mudar de lugar as linhas, usar outras variáveis e até agora nada. Pesquisei no google e achei códigos com sintaxes exatamente iguais e funcionando perfeitamente.

Eu sei que a galera desaconselha postar exercícios aqui pra resolverem, mas só estou postando porque não consegui encontrar sozinho uma forma de resolver esse problema.

Qualquer dica ou idéia serão bem vindas.

5 Respostas

Henrique_Fernandes

[quote=sliipzinn]Estava acompanhando o livro: Java Como Programar (6ª Edição) e fazendo passo a passo os exemplos junto com o texto para poder ir vendo como funcionava cada programa exemplo. Até então quer chego na página 33, Figura 2.7. Que segue:

//Addition.java
//Programa de adição que exibe a soma de dois números.
import java.util.Scanner; //programa utiliza a classe Scanner

public class Addition{
    
    //método principal inicia a execução do aplicativo em Java
    public static void main(String args[]){
        
        //cria Scanner para obter entrada a partir da janela de comando
        Scanner input = new Scanner(System.in);
        
        int number1;    //primeiro número a somar
        int number2;    //segundo número a somar
        int sum;        //soma de number1 e number2
        
        System.out.print("Enter first integer: "); //prompt
        number1 = input.nextInt(); //lê o primeiro número fornecido pelo usuário
        
        System.out.print("Enter second integer: "); //prompt
        number2 = input.nextInt(); //lê o segundo número fornecido pelo usuário
        
        sum = number1 + number2; //soma os números
        
        System.out.printf("Sum is %d\n", sum); //exibe a soma 
        
    } //fim do método principal
    
} //fim da classe Addition

coloque desse jeito:

System.out.println(sum);
Assim o codigo irá funcionar!!!!

Espero ter ajudado mais q atrapalhado!!!

sliipzinn

Tentei e não deu. Até porque o problema parece que não é com a soma e sim com alguma coisa na linha 21, no caso relacionado ao input.

Mas obrigado pela sugestão.

_Roger_

Salve!
Cara, seu código está correto.
Esse erro eh de tipos incompatíveis… na linha de comando vc está digitando somente números inteiros???

Falows

sliipzinn

Resolvi o problema ( ou acho que nem tinha)
Eu estava usando um editor de textos (Komodo Edit 5) pra poder ver as tags, e dentro dele posso escolher trabalhar diretamente com um prompt de comando. Lá dentro dava esse erro, mas quando tentei usar o cmd do windows funcionou perfeitamente.

Obrigado a todos que opinaram. Realmente grato.

B

Tente usar um input.next com um Integer.parseInt no lugar de input.nextInt.

Criado 17 de fevereiro de 2009
Ultima resposta 17 de fev. de 2009
Respostas 5
Participantes 4