olha só, tenhu q fazer uma continha boba dentro do if e usar resultado dpois em outra conta, mas naum sei se a variavel PERC num tah recebendo os valores dentro do if, ou se qnd vou usála do lado de fora do if, ela naum estah c os valores recebidos dentro do if, por favor me ajudem, código abaixo
public static void main(String[] args) {
double preco, perc, x;
String aux;
int cod;
try {
aux = JOptionPane.showInputDialog(null, "Digite o preço do produto:");
preco = Integer.parseInt(aux);
aux = JOptionPane.showInputDialog(null, "Digite o código do aumento:");
cod = Integer.parseInt(aux);
perc = 0;
if (cod == 1)
perc = 15/100;
else if (cod == 3)
perc = 20 / 100;
else if (cod == 4)
perc = 35 / 100;
else if (cod == 8)
perc = 40 / 100;
else
JOptionPane.showMessageDialog(null, "Código inválido!");
x = preco * perc;
preco = preco + x;
JOptionPane.showMessageDialog(null, "Valor do produto: R$ " + preco);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Digite apenas caracteres numericos");
}
System.exit(0);
}
[code] public static void main(String[] args) {
double preco, perc, x;
String aux;
int cod;
try {
aux = JOptionPane.showInputDialog(null, "Digite o preço do produto:");
preco = Integer.parseInt(aux);
aux = JOptionPane.showInputDialog(null, "Digite o código do aumento:");
cod = Integer.parseInt(aux);
perc = 0;
if (cod == 1)
perc = 15/100;
else if (cod == 3)
perc = 20 / 100;
else if (cod == 4)
perc = 35 / 100;
else if (cod == 8)
perc = 40 / 100;
else
JOptionPane.showMessageDialog(null, "Código inválido!");
x = preco * perc;
preco = preco + x;
JOptionPane.showMessageDialog(null, "Valor do produto: R$ " + preco);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Digite apenas caracteres numericos");
}
System.exit(0);
}
[/code]
Melhorei a estética…
flws
vc esta dividindo numeros inteiros (15/100)… crie as variaveis como Double, atribua os valores digitados pelo user com o Double.parseDouble(String) e faca as divisoes com valores Double (15D/100D)
a divisao com inteiros retora 0.
Segue o código exemplificando o que o panthovillas escreveu.
public static void main(String[] args) {
double preco, perc, x;
String aux;
int cod;
try {
aux = JOptionPane.showInputDialog(null, "Digite o preço do produto:");
preco = Integer.parseInt(aux);
aux = JOptionPane.showInputDialog(null, "Digite o código do aumento:");
cod = Integer.parseInt(aux);
perc = 0;
if (cod == 1)
perc = 15d / 100d;
else if (cod == 3)
perc = 20d / 100d;
else if (cod == 4)
perc = 35d / 100d;
else if (cod == 8)
perc = 40d / 100d;
else
JOptionPane.showMessageDialog(null, "Código inválido!");
x = preco * perc;
preco = preco + x;
JOptionPane.showMessageDialog(null, "Valor do produto: R$ " + preco);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Digite apenas caracteres numericos");
}
System.exit(0);
}
Ou seja… em java um int dividido por um int sempre vai resultar em um int.
Fazendo 35d vc informa ao compilador que aquele número é um double