[RESOLVIDO] Problema com Operador Relacional ||

11 respostas
Vodga

Olá galera, alguem poderia me informar oque faço de errado neste meu “IF”?
é o seguinte o programa nao pode deixar cadastrar nenhum usuario se algum desses campos tiverem vazios

mais o problema é que ele ta cadastrando quando eu preencho apenas a linha do nome!

public boolean verificaDados() { if (jTnome.getText().equals("") || (jTnascimento.getDate().equals("")) || (jTcpf.getText().equals("")) || (jTemail.getText().equals("")) || (jTcep.getText().equals("")) || (jTnumero.getText().equals("")) || (jTcelular.getText().equals("")) || (jTvencimento.getDate().equals("")) || (jTmensalidade.getText().equals(""))) { JOptionPane.showMessageDialog(null, "Campos não preenchidos!"); return true; } else { return false; } }

Botão salvar cadastro:

if (verificaDados() == false) {

            cadastro();
            try {
                listarContatos();
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, "preenchimento nao completo!" + ex);
            }
            limparCampos();
        }

11 Respostas

Erick09

Desconsidera a bobagem que eu escrevi.

Vodga

cara, em minha cabeça é OU (||)
qual operador uso entao?
estou confuso!

A

O ou está certo.
Troque de posição o “return false” e o “return true” no seu código.

Vodga

acredito que trocar o false por true nao vai adiantar em nada

Theatrical

Conhece o metodo trim() ?

Vodga

nao conheço nao, tem como me explicar +/- como funciona e pra que serve?

Vodga

GALERA DESCULPEM O TOPICO, ACHEI O ERRO JA!
TEM UM “{” A MAIS

na verdade continuou com o mesmo bug!

igor_ks

Se vc quiser que todos sejam preenchidos, vc precisa de && (and) e não || (or).

Entende pq?
Da forma que vc fez, usando ||, se vc preencher o Nome, e nao preencher o CPF, ele vai entrar mesmo assim, pq o CPF está vazio. Ou seja, enqto tiver algum vazio, ele entrará no seu IF

pmlm

igor_ks:
Se vc quiser que todos sejam preenchidos, vc precisa de && (and) e não || (or).

Entende pq?
Da forma que vc fez, usando ||, se vc preencher o Nome, e nao preencher o CPF, ele vai entrar mesmo assim, pq o CPF está vazio. Ou seja, enqto tiver algum vazio, ele entrará no seu IF


Errado.
Ele quer que entre no if (que vai mostrar o erro) se qualquer um deles não estiver preenchido.

drsmachado

Vodga:

public boolean verificaDados() { if (jTnome.getText().equals("") || (jTnascimento.getDate().equals("")) || (jTcpf.getText().equals("")) || (jTemail.getText().equals("")) || (jTcep.getText().equals("")) || (jTnumero.getText().equals("")) || (jTcelular.getText().equals("")) || (jTvencimento.getDate().equals("")) || (jTmensalidade.getText().equals(""))) { JOptionPane.showMessageDialog(null, "Campos não preenchidos!"); return true; } else { return false; } }


É preferível que você sempre faça a comparação a partir do objeto que conhece, no caso, a String vazia ("").

"".equals(objetoQueQueroComparar)

Isso previne um eventual NullPointerException.
Ok, drsmachado, mas eu estou comparando com os getText() de JTextField, logo, não terei NPE.
E esta linha aqui?

|| (jTnascimento.getDate().equals(""))

Por acaso é de um JTextField?
Você precisará, no mínimo, atentar-se a cada tipo de retorno possível.
O ideal, até mesmo, seria colocar os valores obtidos em objetos e verificar se os objetos são nulos ou representam String vazia.

Vodga

PROBLEMA RESOLVIDO!

pedi ajuda ao meu professor, ele ajudou e falou que a data nao pode ser .equals("") e sim == null

public boolean verificaDados() {
        if (jTnome.getText().equals("") 
                || (jTnascimento.getDate()==(null))
                || (jTcpf.getText().equals("")) 
                || (jTemail.getText().equals(""))
                || (jTcep.getText().equals("")) 
                || (jTnumero.getText().equals(""))
                || (jTvencimento.getDate()==(null)) 
                || (jTmensalidade.getText().equals(""))) {
            return true;
        } else {
            return false;
        }

    }

OBRIGADO A TODOS!

Criado 18 de junho de 2013
Ultima resposta 19 de jun. de 2013
Respostas 11
Participantes 7