Ajuda para melhorar o script

8 respostas
S

Oi galera
estou com um problema com um programa
o programa roda e tudo, mas da muito trabalho pra fazer todos os “if”
cada um com uma estrutura, ainda mais quando de trata de um vetor de 50 unidades
então no caso seriam 80 if/else \o/
ja tentei de varias formas e a unica que funcionou da form que eu precisava foi a seguinte:

if (c1.i==0){ JOptionPane.showMessageDialog(null,"Nenhum produto no carrinho."); } else if(c1.i==1){ String frase=String.format("Produtos no carrinho: " +c1.produtos[0]); JOptionPane.showMessageDialog(null, frase); } else if(c1.i==2){ String frase=String.format("Produtos no carrinho: \n" +c1.produtos[0]+ "\n" +c1.produtos[1]); JOptionPane.showMessageDialog(null, frase); } else if(c1.i==3){ String frase=String.format("Produtos no carrinho: \n" +c1.produtos[0]+ "\n" +c1.produtos[1]+ "\n"+c1.produtos[2]); JOptionPane.showMessageDialog(null, frase); }

a variavel “i” é um contador que muda de acordo com outras açoes que sao feitas em outra parte do programa
entao pra cada valor de “i”(com i entre 0 e 80) eu uso um if
alguem consegue pensar em uma forma mais elegante de fazer a mesma funçao?

desde ja agradeço
abraços

8 Respostas

Marky.Vasconcelos

Acho mais fáçil voce usar um ArrayList e a cada ação adicionar um item a esse List e na hora de mostarar percorrer a listar contacenando as Strings e mostrar ao usuario.

thiago.correa
StringBuilder produtos = new StringBuilder();
if (c1.produtos.length() != 0) {
    produtos.append("Produtos no carrinho:\n");
    for (int i = 0; i < c1.produtos.length(); i++) {
        produtos.append(c1.produtos[i]).append("\n");
    }
} else {
    produtos.append("Nenhum produto no carrinho");
}

JOptionPane.showMessageDialog(null, produtos.toString());
Marky.Vasconcelos
thiago.correa:
StringBuilder produtos = new StringBuilder();
if (c1.produtos.length() != 0) {
    for (int i = 0; i < c1.produtos.length(); i++) {
        produtos.append(c1.produtos[i]).append("\n");
    }
} else {
    produtos.append("Nenhum produto no carrinho");
}

JOptionPane.showMessageDialog(null, produtos.toString());
O unico problema desse esquema é que se o array for de 5 posições e apenas as 3 primeiras tiverem itens o resultado seria algo assim
1° Item
2° Item
3° Item
null
null
S

poxa eu nao sei fazer um arraylist
nunca ouvi falar disso, mas creio que seja uma lista que mostra vetores, é isso?
bom… preciso descobrir como usar

achei uma otima soluçao, parece ser agradavel
obrigado

ps: aceito mais opniões.

Marky.Vasconcelos

http://www.guj.com.br/posts/list/71926.java

Veja os posts do ViniGodoy que já da pra entender como usar.

thiago.correa
Mark_Ameba:
thiago.correa:
StringBuilder produtos = new StringBuilder();
if (c1.produtos.length() != 0) {
    for (int i = 0; i < c1.produtos.length(); i++) {
        produtos.append(c1.produtos[i]).append("\n");
    }
} else {
    produtos.append("Nenhum produto no carrinho");
}

JOptionPane.showMessageDialog(null, produtos.toString());
O unico problema desse esquema é que se o array for de 5 posições e apenas as 3 primeiras tiverem itens o resultado seria algo assim
1° Item
2° Item
3° Item
null
null

Eu sei, mas a idéia era mostrar o uso do for, não vou parar de trabalhar para poder resolver o problema do cara e dar o algoritmo certinho, além do mais ele teria que correr atrás disso né! :wink:

S

obrigado pelo script

vou testar
:wink:

S

bom…
eu não conheço alguns desses comandos
e gostaria de entender realmente o script
entao gostaria de saber de vcs se possivel qual a finalidade de lenght() e append()

valeu pela ajuda

Criado 8 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 8
Participantes 3