Erro na lógica!

4 respostas
C

Pessoal estou fazendo um programa simples que controla um estacionamento, mas estou com problema na logica.
Ai vai o codigo:

/* Faça um programa Java para controlar as vagas de um estacionamento
 * para carros com N vagas. O programa deve controlar a entrada e saida
 * dos carros caso o não exista mais vagas o programa deve exibir uma
 * menssagem sempre que o usuário clicar na entrada de um novo carro.
 */
 
/* Nesse caso teremos q ultilizar um contador pra controlar a entrada
 * e a saida, e vamos ultilizar um ma palavra sentinela " SAIR ",
 * se o usuario digita-la o programa mostrará quantos carros há no
 * estacionamento
 */
 
import javax.swing.JOptionPane;

public class Estacionamento {
   public static void main( String[] args ) {
   
      String lotacao;
      String escolha;
      int    contador;
      int    capacidade;

// Estou ultilizando esses valores pra ele poder entrar no looping
      escolha = " ";
      contador = 0;
      
      lotacao = JOptionPane.showInputDialog( " Digite a lotacao do estacionamento " );
// aqui ele esta convertendo a String recebida em Inteiro
      capacidade = Integer.parseInt( lotacao );
      
      while( escolha != "SAIR" ) {
      
         escolha = JOptionPane.showInputDialog( " Digite  E  p/ entrada e  S  p/ saida " );

         if( escolha == "E" || escolha == "e" ) {
            contador ++;

            if( contador > capacidade ) {
               JOptionPane.showMessageDialog( null,
                  " ! Capacidade do estacionamento lotada ! ", " Atenção ",
                  JOptionPane.WARNING_MESSAGE);
            }
         }
            
         if( escolha == "S" || escolha == "s" ) {
            contador --;
         }
         
         if( escolha == "SAIR" ) {
            JOptionPane.showMessageDialog( null,
                  " No momento há " + contador + " veículos no estacionamento ", " ! VERIFICANDO ! ",
                  JOptionPane.WARNING_MESSAGE);
         }
      }
   }
}

Sera q alguem consegue me ajudar?

Abracao e te +

4 Respostas

R

Olá Ratinho,

Após a linha:

if( contador > capacidade ) {

Insira esta:

contador--;

Foi isso que consegui ver…

Abraços

W
if( escolha == "SAIR" ) {
            JOptionPane.showMessageDialog( null,
                  " No momento há " + contador + " veículos no estacionamento ", " ! VERIFICANDO ! ",
                  JOptionPane.WARNING_MESSAGE);
         }

Experimenta retirar a condição if ( escolha == "SAIR" ) {E exibir cada vez que ele faz um laço.

M
if ( escolha == "SAIR" )

:?: … não seria if ( escolha.equals( “SAIR” ) ) ??

eltonk

Exato matheus…
Quando se compara Strings, deve-se usar o método equals() ou até mesmo o equalsIgnoreCase()…

Acertando isso em todo o seu código, creio que funcione…
Dei uma olhada por cima só… mas esse foi o “detalhe” que me chamou mais atenção ehehhe

Abraços,

Criado 15 de abril de 2004
Ultima resposta 17 de abr. de 2004
Respostas 4
Participantes 5