Usando input.nextInput();

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:

[code]//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[/code]

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.

[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:

[code]//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[/code]

coloque desse jeito:

 System.out.println(sum); 

Assim o codigo irá funcionar!!!

Espero ter ajudado mais q atrapalhado!!!

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.

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

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.

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