Algume me ajuda?

8 respostas
Cleiton_Horalino

não sei oque o pq desse erro tentei muitas coisas e não consigo solucionar

8 Respostas

Gabrielfp

Tenta usar o String.valueOf(); pode resolver.

Gilian_Marques

Então, o método estatico parseInt(); da classe Integer recebe uma String como parametro, entao como foi dito pelo Gabrielfp use String.valueOf();. Ficara dessa forma:

int codigoConvertido = Integer.parseInt(String.valueOf(codigo))

ou simplesmente concatene “codigo” com aspas duplas:

int codigoConvertido = Integer.parseInt(codigo+"");
A

Remova o break:

Obs.:

Cleiton_Horalino

então amigo necessito do break pois tenho que finalizar o while , caso não tenha o break o programa fica dando loop.

A

Como está você não adiciona nada.
Se remover não sai do loop.
Resumo: erro de lógica.

Crie uma forma de sair, exemplo:

se codigo == sair {
    break;
}
Gabrielfp

Na verdade não, na posição em que o break está o seu programa não vai funcionar, pois vai chegar naquele ponto e sair do loop.

Cleiton_Horalino

Tentei fazer isso e não funcionou não sei oque pode ser.

A

Vai com calma, com um pouco de prática, você vai aprendendo.

Fiz um exemplo simples de cadastramento, onde usei um único break na aplicação.

Procure pelo if e tente entender a lógica.

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Teste {

    List<Produto> produtos = new ArrayList<>();
    Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {
        Teste teste = new Teste().cadastra();
        System.out.println("Verificando lista de produtos cadastrados: Total -> " + teste.produtos.size());
        teste.produtos.forEach(item -> System.out.println(item.toString()));
    }

    private Teste cadastra() {
        //para uma economia de linhas, optei por organizar as perguntas é um vetor
        String[] perguntas = {"Informe o código do produto", "Informe a descrição", "Informe o preço"};
        String[] resposta = new String[perguntas.length];//outro vetor para guardar as respostas

        a:
        while (true) {
            //percorrendo as perguntas e pegando as respostas
            for (int i = 0; i < perguntas.length; i++) {
                System.out.println(perguntas[i] + " ou sair.");
                resposta[i] = scan.nextLine();
                //Tente compreender o funcionamento do if abaixo, pois se o usuário digitar sair ele sai do laço while, bem como quando não digitar nada
                if (resposta[i].isEmpty() || resposta[i].equalsIgnoreCase("sair")) {
                    System.out.println(resposta[i].equalsIgnoreCase("sair") ? "Saindo do cadastramento." : "Operação cancelada.");
                    scan.close();
                    break a;//o break será executado diretamento no while
                }
                
            }//se sair do for, cadastra um produto
            produtos.add(new Produto(new Integer(resposta[0]), resposta[1], new Float(resposta[2])));
            System.out.println("\nCadastramento realizado, total de itens: " + produtos.size() + "\n");
        }
        return this;
    }

}



public class Produto {
    private int codigo;
    private String descricao;
    private float preco;

    public Produto(int codigo, String descricao, float preco) {
        this.codigo = codigo;
        this.descricao = descricao;
        this.preco = preco;
    }

    public int getCodigo() {
        return codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public float getPreco() {
        return preco;
    }

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

    public void setPreco(float preco) {
        this.preco = preco;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    @Override
    public String toString() {
        return "Código: "+ this.codigo+" Descrição: "+this.descricao+" Preço: "+this.preco;
    }
    
}
Criado 11 de agosto de 2017
Ultima resposta 13 de ago. de 2017
Respostas 8
Participantes 4