Erro no IF, Netbeans
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
erro
Código completo
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
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
Curtidas 0
Respostas
Jothaz
16/07/2015
Você já declarou a variável valorPago antes do if, então dentro do if não deve usar:
Use:
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
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.
O trecho após o if está correto? o else.
GOSTEI 0
Jothaz
16/07/2015
A mensagem de erro é clara:
Sim esta certo, mas quando tiver dúvidas é só executar que você verá se esta errado ou certo.
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
16/07/2015
Está certo Jothaz, obrigado mesmo pela ajuda.
GOSTEI 0
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
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;
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
16/07/2015
Eu utilizo o Switch quando tenho opções previamente definidas, é exatamente isso?
GOSTEI 0
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