Erro no IF, Netbeans

Java

16/07/2015

Dentro do If no trecho está aparecendo um erro, acredito que seja nada demais ou algo muito simples.

trecho do código que dá erro


double valorPago = consumoKW * valorKW;



erro

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - variable valorPago is already defined in method main(java.lang.String[])
at UsandoIf.main(UsandoIf.java:17)
Java Result: 1


Código completo


import java.util.Scanner;

public class UsandoIf {

  
    public static void main(String[] args) {
        
        Scanner entrada = new Scanner( System.in );
        System.out.println( "Digite seu consumo em KW:" );
        double valorKW = 0.72;
        int consumoKW = entrada.nextInt();
        double valorPago = 0;
        
        if (consumoKW >= 0){
            double valorPago = consumoKW * valorKW;
        } else {
            System.out.println( "Não pode ser efetuado operação!" );
        }
       
        System.out.println( "Valor consumido: R$" + valorPago );
        
    }
    
}

Felipe Moreira

Felipe Moreira

Curtidas 0

Respostas

Jothaz

Jothaz

16/07/2015

Você já declarou a variável valorPago antes do if, então dentro do if não deve usar:

double valorPago = consumoKW * valorKW;


Use:


        if (consumoKW >= 0){
            valorPago = consumoKW * valorKW;
        } else {
            System.out.println( "Não pode ser efetuado operação!" );
        }
GOSTEI 0
Felipe Moreira

Felipe Moreira

16/07/2015

É verdade, deu erro porque estava sendo interpretado como se fosse uma declaração de duas variáveis, entendi!

O trecho após o if está correto? o else.
GOSTEI 0
Jothaz

Jothaz

16/07/2015

A mensagem de erro é clara:

variable valorPago is already



Sim esta certo, mas quando tiver dúvidas é só executar que você verá se esta errado ou certo.
GOSTEI 0
Felipe Moreira

Felipe Moreira

16/07/2015

Está certo Jothaz, obrigado mesmo pela ajuda.
GOSTEI 0
Felipe Moreira

Felipe Moreira

16/07/2015

Interessante com Else...If, agora me pergunto, qual o nivel(quantidade) de else if pode-se utilizar.


import java.util.Scanner;

public class UsandoIf {
  
    public static void main(String[] args) {
        
        Scanner entrada = new Scanner( System.in );
        System.out.println( "Digite seu consumo em KW:" );
        double valorKW = 0.72;
        int consumoKW = entrada.nextInt();
        double valorPago = 0;  
       
        
        if (consumoKW == 0){            
            System.out.println( "Você não consumiu energia esse mês" );
        } else if (consumoKW < 0 ){            
            System.out.println( "Não pode ser efetuado operação! Valor Negativo" );
        } else {
            valorPago = consumoKW * valorKW;
        }
      
        System.out.println( "Valor consumido: R$" + valorPago );
        
    }
    
}

GOSTEI 0
Jothaz

Jothaz

16/07/2015

Infinitos.

Só que muitos if´s pode pesar na performance e nem sempre é a melhor lógica.

As vezes é melhor usar switch;

public class ExemploSwitch {
    public static void main(String args[]) {
        int diaDaSemana = 1;
        switch (diaDaSemana) {
            case 1:
                System.out.println("Domingo");
                break;
            case 2:
                System.out.println("Segunda-feira");
                break;
            case 3:
                System.out.println("Terça-feira");
                break;
            case 4:
                System.out.println("Quarta-feira");
                break;
            case 5:
                System.out.println("Quinta-feira");
                break;
            case 6:
                System.out.println("Sexta-feira");
                break;
             case 7:
                System.out.println("Sábado");
                break;
            default:
                 System.out.println("Este não é um dia válido!");
         }
    }
}
GOSTEI 0
Felipe Moreira

Felipe Moreira

16/07/2015

Eu utilizo o Switch quando tenho opções previamente definidas, é exatamente isso?
GOSTEI 0
Felipe Moreira

Felipe Moreira

16/07/2015

Fiz um parecido.


switch ( num ) {
            case 0 :
                numeroExtenso = "zero";
                break;
            case 1 :
                numeroExtenso = "um";
                break;
            case 2 :
                numeroExtenso = "dois";
                break;
            case 3 :
                numeroExtenso = "três";
                break;    
            case 4 :
                numeroExtenso = "quatro";
                break;
            case 5 :
                numeroExtenso = "cinco";
                break;
            case 6 :
                numeroExtenso = "seis";
                break;
            case 7 :
                numeroExtenso = "sete";
                break;
            case 8 :
                numeroExtenso = "oito";
                break; 
            case 9 :
                numeroExtenso = "nove";
                break;
            default : 
                numeroExtenso = "Valor inexistente";
        }

GOSTEI 0
POSTAR