Pq oq faço dentro do if naum reflete do lado de fora?

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

vlw

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

vlw cara, resolvido!!!