[Duvida] Métodos next() e nextLine () da classe Scanner;

1 resposta
T

Boa noite pessoal do Forum GUJ.
Antes de nada gostaria de agradecer a comunidade por fornecer um excelente material para pessoas que estão interessadas em aprender Java. Com méritos é a maior e melhor comunidade de Java do Brasil.

Bom, pra começar estou com duvida.
É coisa bem simples creio eu.
O codigo abaixo funciona perfeitamente, só que estou com uma duvida na classe InvoiceTest, linha 31.
Eu tento usar o método nextLine() da classe Scanner, mas... o aplicativo da um erro de tempo de execução não fatal, termina e acabo não conseguindo inserir a String.

A pergunta é:

Porque não consigo usar o método nextLine() na linha 31 (class InvoiceTest)

Invoice.java
// Invoice.java
public class Invoice
{
   
   int numero, qtdItens;
   String descricao;
   double preco;

   public Invoice()

   {
      this.numero = 0;
      this.qtdItens = 0;
      this.preco = 0.0;
      this.descricao = null;

      System.out.printf("Numero do invoice: %d\nQuantidade de itens: %d\nPreco: %.2f\nDescricao: %s"
      , this.numero, this.qtdItens, this.preco, this.descricao);

   };//fim do construtor


   //set e get numero
   public void setNumero( int numero )
   {
      this.numero = numero;
   };

   public int getNumero()
   {
      return this.numero;
   };


   // set e get qtdItens
   public void setQtdItens(int qtdItens)
   {
      this.qtdItens = qtdItens;
   };  

   public int getQtdItens()
   {
      return this.qtdItens;   
   };


   //set e get preco
   public void setPreco(double preco)
   {
      this.preco = preco;
   };
   
   public double getPreco()
   {
      return this.preco;
   };


   //set e get descricao

   public void setDescricao(String descricao)
   {
      this.descricao = descricao; 
   };

   public String getDescricao()
   {
      return this.descricao;
   };


   //metodo getInvoiceAmount
   public double getInvoiceAmount()
   {
      if(this.qtdItens < 0)
         this.qtdItens = 0;

      if(this.preco < 0.0)
         this.preco = 0.0;

      double invoiceAmount = qtdItens * preco;
      
      return invoiceAmount;
       
   };//fim do metodo InvoiceAmount

};// fim da classe Invoice
InvoiceTest.java
//InvoiceTest.java

import java.util.Scanner;

public class InvoiceTest
{
   public static void main (String args[])
   {

      Scanner input = new Scanner( System.in );

      System.out.println("***Modelo de Invoice***");
      Invoice invoice = new Invoice();
            

      System.out.println("\n\n\n*** Invoice ***");
      
      System.out.print("\n\nInsira o numero do Invoice:  ");
      int numero = input.nextInt();
      invoice.setNumero( numero );
      
      System.out.print("\nInsira o preco do produto: ");
      double preco = input.nextDouble();
      invoice.setPreco( preco );

      System.out.print("\nInsira a quantidade: ");
      int quantidade = input.nextInt();
      invoice.setQtdItens( quantidade );
      
      System.out.print("\nInsira a descricao do produto: ");
      String descricao = input.next();//***AQUI***
      invoice.setDescricao( descricao );

      System.out.println("\n\n***Detalhes da Fatura***");
      System.out.printf("Numero do invoice: %d\nQuantidade de itens: %d\nPreco: %.2f\nDescricao: %s\n\n\n"
      , invoice.getNumero(), invoice.getQtdItens(), invoice.getPreco(), invoice.getDescricao() );
 
      System.out.printf("Total da Fatura: %.2f\n\n",invoice.getInvoiceAmount() );


   };// fim do metodo principal

}; // fim da classe InvoiceTest

1 Resposta

admsilva

Da uma olhada
http://forum.java.sun.com/thread.jspa?threadID=718569&messageID=4148209

Criado 4 de agosto de 2009
Ultima resposta 5 de ago. de 2009
Respostas 1
Participantes 2