Comando IF/ELSE

Bom dia!

NO aplicativo abaixo dentro do bloco de decisão: quando limite e maior que Compras do mês deve ser executado somente a instrução dentro do IF, mas neste caso esta executando tb a rotina do ELSE, alguém pode me ajudar?

import javax.swing.JOptionPane;


public class Limite{
	
	
	public static void main ( String args[] )
	{
		
		
		
		// Variáveis do Aplicativo
		String nomeCliente, numConta, saldoMes1, itensCred1, totCompCred1;
		
		int saldoMes;           // Saldo Do Mês  
		int itensCred;         // Total de Itens Comprados no Mês
		int totCompCred;      // Total de Compras a Credito Mês
		int limite;          // Limite de Crédito
		int novoSaldo;      // Novo Saldo Disponível em Conta Corrente  
		int estouroLimite; // Limite Ultrapassado
		
		
		
		// Inicialização de Variável
		
		limite = 0;
		novoSaldo = 0;
		estouroLimite = 0;
		
		
        // Entrada de Dados Tipo String 		
		
		
		nomeCliente  =  JOptionPane.showInputDialog("Nome Cliente");
		
		numConta     =  JOptionPane.showInputDialog("Numero da Conta");
		 
		saldoMes1    =  JOptionPane.showInputDialog("Informe o Saldo do Mês");
		
		itensCred1   =  JOptionPane.showInputDialog("Informe o Numero de Itens Consumido");
		
		totCompCred1 =  JOptionPane.showInputDialog("Informe o Total de Compras a Crédito");
		
		
		
		// Conversão dos Dados String / Inteiro
		
		
		saldoMes    = Integer.parseInt ( saldoMes1 );
		
		itensCred   = Integer.parseInt ( itensCred1 );
		
		totCompCred = Integer.parseInt ( totCompCred1 );
		
		
		
		// Calculos do Limite de Crédito e Novo Saldo
		
		limite    =  saldoMes / 2;
		
		novoSaldo =  ( saldoMes - totCompCred );
		
		
		
		// Bloco de Decisão
		
		if( limite > totCompCred )
		{
			
			JOptionPane.showMessageDialog(null,
			  "Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior: " + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" + 
			  "Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo, "Extrato Bancário",  
			JOptionPane.INFORMATION_MESSAGE);
			
				    
	    }
		else
		   
		
		    estouroLimite = totCompCred - limite;
		    
		    JOptionPane.showMessageDialog(null,
			  "Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior :" + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" + 
			  "Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo + "\n" + 
			  "Estouro Limite :" + estouroLimite, "Extrato Bancário",   
			JOptionPane.INFORMATION_MESSAGE);
			 
		 		 	   
		System.exit(0);
		
		
	
	
	} // Fim Metodo Main
	
} // Fim class Limite	
		

Bom dia!
Você deve colocar o bloco else entre chaves {}
Na forma como você codificou, ele só não está executando a primeira linha após o else.
Abraço!

É isso mesmo que o nosso amigo cristianomarino disse. Experimente o código dessa forma:

...
if( limite > totCompCred )
{
	JOptionPane.showMessageDialog(null,
		"Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior: " + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" +
		"Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo, "Extrato Bancário",
		JOptionPane.INFORMATION_MESSAGE);
}
else
{
	estouroLimite = totCompCred - limite;

	JOptionPane.showMessageDialog(null,
		"Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior :" + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" +
		"Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo + "\n" +
		"Estouro Limite :" + estouroLimite, "Extrato Bancário",
		JOptionPane.INFORMATION_MESSAGE);
}

System.exit(0);

[]´s

É exatamente isso que os colegas acima disseram…
como você não colocou as { } no else…
o java está considerando que o else só tem um comando…

o java está entendendo o seu código da seguinte forma:

if( limite > totCompCred )   
{   
    JOptionPane.showMessageDialog(null,   
        "Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior: " + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" +   
        "Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo, "Extrato Bancário",   
        JOptionPane.INFORMATION_MESSAGE);   
}   
else   
{   
    estouroLimite = totCompCred - limite;   
}  
    JOptionPane.showMessageDialog(null,   
        "Prezado(a), "+ nomeCliente + "\n" + "Saldo Anterior :" + saldoMes + "\n" + "Total de Itens :" + itensCred + "\n" +   
        "Total Compras :" + totCompCred + "\n" + "Limite :" + limite + "\n" + "Saldo Atual :" + novoSaldo + "\n" +   
        "Estouro Limite :" + estouroLimite, "Extrato Bancário",   
        JOptionPane.INFORMATION_MESSAGE);   
   
  
System.exit(0);  

colocando as chaves… resolve seu problema.
att

É exatamente o que os calegas falaram. As {} podem ser omitidas quando, no caso do else temos apenas um comando. Mas quando temos varios comandos dentro do else devemos limitar o bloco com {}. Na verdade é sempre bom colocar {} mesmo quando temos um único comando no bloco.

Só pra não perder a Corrente: “É isso mesmo que os colegas de cima disseram”

O que a Kassi disse se chama boa prática de programação… é obrigado ?? não… mas é aconselhável…

Não entendi, porque todos responderam a mesma pergunta? :shock:
Se não for complementar, acho que nao necessita “Copy & Paste” de “Idéias”
Opinião pessoal! :twisted: