Java.util.Scanner - HELP!

E aí galera…
Fiz um exercício e tá dando pau no Scanner mas apenas na segunda repetição (e talvez nas próximas) do while… alguém me ajuda please?

Valeu!!!

[code]package Salarios;

import java.util.Scanner;

public class Salarios {

public static void main(String[] args) {
    double salarioHora;
    double salarioExtra;
    double salarioBruto;
    int horas;
    String nomeEmpregado;
    int contador = 0;
    
    Scanner input = new Scanner( System.in );
    
    while( contador < 3 ) {
        System.out.print("Digite o nome do empregado: ");
        nomeEmpregado = input.nextLine();
        
        System.out.print("Digite as horas trabalhadas: ");
        horas = input.nextInt();

        System.out.print("Digite o salario-hora: ");
        salarioHora = input.nextDouble();
        
        if ( horas < 41 ) {
            salarioBruto = salarioHora * horas;
            System.out.println("Salario bruto: R$" + salarioBruto );
        }
        
        else {
            salarioExtra = ( horas - 40 ) * (salarioHora + salarioHora * 0.5 );
            salarioBruto = salarioExtra + ( salarioHora * 40 );

            System.out.println("SalarioBruto: R$" + salarioBruto);
        }
        
        contador = contador + 1;
        
    }
}

}[/code]

O erro é na execução:

Digite o nome do empregado: Luis Paiva
Digite as horas trabalhadas: 40
Digite o salario-hora: 10
Salario bruto: R$400.0
Digite o nome do empregado: Digite as horas trabalhadas: Luis
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:819)
at java.util.Scanner.next(Scanner.java:1431)
at java.util.Scanner.nextInt(Scanner.java:2040)
at java.util.Scanner.nextInt(Scanner.java:2000)
at Salarios.Salarios.main(Salarios.java:30)


Aparece os dois prompts na mesma linha e qdo digito Luis deu esse erro.
Help??

Hawk,

Substitua o:
nomeEmpregado = input.nextLine();
por
nomeEmpregado = input.next();

Esse erro é que ele está pulando a entrada do nome na segunda vez que passa pelo loop e pedindo direto o valor, e neste valor vc está entrando com um campo alfanumérico.

Faz um teste: digita na primeira vez no campo valor um texto qualquer que vc vai ver que esse erro ocorrerá, pois no valor vc pega com input.nextInt() e input.nextDouble()

ASOBrasil

pô brigadão ASOBrasil!

Qual a diferença do nextLine() e do next?

Por que quando counter = 0 ele funciona normal, e apenas na próxima repetição dá esse pau??

obrigado!

[quote=Hawk]pô brigadão ASOBrasil!

Qual a diferença do nextLine() e do next?

Por que quando counter = 0 ele funciona normal, e apenas na próxima repetição dá esse pau??

obrigado!
[/quote]

ae parceiro fiz umas mudanças basica no seu code veja ai!!

[code]
import java.util.Scanner;

public class Salarios {

 public static void main(String[] args) {
     double salarioHora;
     double salarioExtra;
     double salarioBruto;
     int horas;
     
     int contador = 0;
     
     Scanner input = new Scanner( System.in );

 while( contador < 3 ) {

contador = contador + 1;

System.out.println("Digite o nome do empregado: ");
      	
String nomeEmpregado = input.next();
         
         System.out.println("Digite as horas trabalhadas: ");
         horas = input.nextInt();

         System.out.println("Digite o salario-hora: ");
         salarioHora = input.nextDouble(); 
  
     
    
         if ( horas < 41 ) {
             salarioBruto = salarioHora * (horas);
             System.out.printf("Salario bruto: R$%.2f\n",salarioBruto );
         }
         
         else {
             salarioExtra = (double)( horas - 40 ) * (salarioHora + salarioHora * 0.5 );
             salarioBruto = salarioExtra + ( salarioHora * 40 );

             System.out.printf("SalarioBruto: R$%.2f\n ",salarioBruto);
         }
         
         
         
 	}    
 }

}[/code]

import java.util.Scanner;

public class AccountTest
{
// método principal inicia a execução do aplicativo Java
public static void main( String args[] )
{
Account account1 = new Account( 50.00 ); // cria o objeto Account
Account account2 = new Account( -7.53 ); // cria o objeto Account

  // exibe saldo inicial de cada objeto
  System.out.printf( "account1 balance: $%.2f\n", 
     account1.getBalance() );
  System.out.printf( "account2 balance: $%.2f\n\n", 
     account2.getBalance() );
  
  // cria Scanner para obter entrada a partir da janela de comando
  Scanner input = new Scanner( System.in );
  double depositAmount; // quantia de depósito lida a do usuário

  System.out.print( "Enter deposit amount for account1: " ); // prompt
  depositAmount = input.nextDouble(); // obtém a entrada do usuário
  System.out.printf( "\nadding %.2f to account1 balance\n\n", 
     depositAmount );
  account1.credit( depositAmount ); // adiciona o saldo de account1

  // exibe os saldos
  System.out.printf( "account1 balance: $%.2f\n", 
     account1.getBalance() );
  System.out.printf( "account2 balance: $%.2f\n\n", 
     account2.getBalance() );

  System.out.print( "Enter deposit amount for account2: " ); // prompt
  depositAmount = input.nextDouble(); // obtém a entrada do usuário
  System.out.printf( "\nadding %.2f to account2 balance\n\n", 
     depositAmount );
  account2.credit( depositAmount ); // adiciona ao saldo de account2

  // exibe os saldos
  System.out.printf( "account1 balance: $%.2f\n", 
     account1.getBalance() );
  System.out.printf( "account2 balance: $%.2f\n", 
     account2.getBalance() );

} // fim de main

} // fim da classe AccountTest

Estou tentando compilar este código, porém ele demonstra uma série de erros como por exemplo:
cannot resolve symbol class Scanner - line 3
cannot resolve symbol method printf (java.lang.String,double) - line 14
cannot resolve symbol method printf (java.lang.String,double) - line 16
cannot resolve symbol class Scanner - line 20
cannot resolve symbol class Scanner - line 20
cannot resolve symbol method printf (java.lang.String,double) - line 30
cannot resolve symbol method printf (java.lang.String,double) - line 32

Tentei de tudo já, mas não consigo compilar este código.

import animais.Gato;
import animais.Passaro;
import java.util.Scanner;

public class ControleDeVenda {

public static void main(String args[]){
    int opçao = 0;
    Scanner c = new Scanner( System.in );

    while (opçao != 1)
    {
    	System.out.println("  Menu");
    	System.out.println("1 - Gato");
            System.out.println("2 - Passaro");
    	System.out.println("3 - Sair");
 	System.out.println("\n");
System.out.print("Escolha a opçao do menu:");
opçao = c.nextInt();
    	System.out.println("\n");
    }

    if(opçao == 1)
    {		
          Gato a1 = new Gato(01,"Todinho",15,420,"wiscas");

          System.out.println(a1);
    }	
    if(opçao == 2)
    {		
          Passaro a2 = new Passaro(02,"Rock Balboa",5,1500,true);
	
          System.out.println(a2);		
     }
}

}

Fiz este programa principal, e esta dando erro de “cannot resolve symbol class Scanner”, não sei solucionar.Gostaria que vocês me dissessem a solução deste problema.Obrigado.

nome da variável.

tira o Ç.

Edit:
Perae, com ou sem o “Ç”, funciona de boa o programa.

flw.

Resposta:

Consequiram solucionar o problema?
realmente,“ç” não é o problema.
Vlw

Não tem problema nenhum com o Scanner cara!!
Pelo menos não nesse código que vc passou.
Olha aí:

import java.util.Scanner;

public class Teste {

	public static void main(String args[]) {
		int opçao = 0;
		Scanner c = new Scanner(System.in);

		while (opçao != 1) {
			System.out.println(" Menu");
			System.out.println("1 - Gato");
			System.out.println("2 - Passaro");
			System.out.println("3 - Sair");
			System.out.println("\n");
			System.out.print("Escolha a opçao do menu:");
			opçao = c.nextInt();
			System.out.println("\n");
			System.out.println(opçao);
		}
	}

}

Só uma coisa, ninguém está aqui para resolver problemas e sim para ajudar… Quem resolve o problema é quem está com o mesmo.

flw.

Resposta:

tudo bem,
estou no trabalho no momento e não estou com acesso ao interpretador.Chegando em casa irei rever o programa.
Obrigado pela ajuda.

Agora, resolver o problema…foi um modo de dizer, o que eu queria era uma orientação na solução do programa.
Acredito que não foi correto o modo no qual vocês me trataram.

Novamente, Obrigado.