Como fazer um IF ou um CASE, comparando 2 JtextFields

4 respostas
java
F

Srs, bom dia,

Tenho 2 JtextField ( txttomatual e Txtnovotom), gostaria de fazer de preferencia um CASE da seguinte forma;

CASO  txttomatual = "A"  AND CASO txtnovotom = "B"
                          faço algo
   CASO  txttomatual = "A"  AND CASO txtnovotom = "C"
                          faço algo
    CASO  txttomatual = "A"  AND CASO txtnovotom = "D"
                          faço algo
    CASO  txttomatual = "A"  AND CASO txtnovotom = "E"
                          faço algo
                               "
                               "
                               "
                               "
   CASO  txttomatual = "A"  AND CASO txtnovotom = "G"
                          faço algo
   
   CASO  txttomatual = "B"  AND CASO txtnovotom = "A"
                          faço algo
   CASO  txttomatual = "B"  AND CASO txtnovotom = "C"
                          faço algo
    CASO  txttomatual = "B"  AND CASO txtnovotom = "D"
                          faço algo
    CASO  txttomatual = "B"  AND CASO txtnovotom = "E"
                          faço algo
                               "
   CASO  txttomatual = "B"  AND CASO txtnovotom = "G"
                            faço algo
                                 "
                                 "
                                 "
        continua para outras letras (txttomatual = C,D,F,G)

Poderia também usar IFs , mas como são muitas comparações, creio que CASE seria melhor, se é que posso usar um Case para comparar 2 Strings contidas em txttomatual e txtnovotom.

Procurei na internet e não achei nada com IF e nem com CASE, como eu poderia fazer este código ???

Desde de já agradeço muito a ajuda, estou tentando realizar este código e não consigo, por isso peço a ajuda de vcs.

Muito obrigado.

4 Respostas

staroski

Pro switch ficar um pouco menor, você pode concatenar o valor do JTextFields e comparar se são AA, AB, ACGE, GF, GG, por exemplo.

String tomAtual = txtTomAtual.getText();
String tomNovo = txtNovoTom.getText();
switch (tomAtual + tomNovo) {
    case "AA":
        // faz algo
        break;
    case "AB":
        // faz algo
        break;
    case "AC":
        // faz algo
        break;
    case "AD":
        // faz algo
        break;
    case "AE":
        // faz algo
        break;
    case "AF":
        // faz algo
        break;
    case "AG":
        // faz algo
        break;
    case "BA":
        // faz algo
        break;
    case "BB":
        // faz algo
        break;
    case "BC":
        // faz algo
        break;
    case "BD":
        // faz algo
        break;
    case "BE":
        // faz algo
        break;
    case "BF":
        // faz algo
        break;
    case "BG":
        // faz algo
        break;
    case "CA":
        // faz algo
        break;
    case "CB":
        // faz algo
        break;
    case "CC":
        // faz algo
        break;
    case "CD":
        // faz algo
        break;
    case "CE":
        // faz algo
        break;
    case "CF":
        // faz algo
        break;
    case "CG":
        // faz algo
        break;
    case "DA":
        // faz algo
        break;
    case "DB":
        // faz algo
        break;
    case "DC":
        // faz algo
        break;
    case "DD":
        // faz algo
        break;
    case "DE":
        // faz algo
        break;
    case "DF":
        // faz algo
        break;
    case "DG":
        // faz algo
        break;
    case "EA":
        // faz algo
        break;
    case "EB":
        // faz algo
        break;
    case "EC":
        // faz algo
        break;
    case "ED":
        // faz algo
        break;
    case "EE":
        // faz algo
        break;
    case "EF":
        // faz algo
        break;
    case "EG":
        // faz algo
        break;
    case "FA":
        // faz algo
        break;
    case "FB":
        // faz algo
        break;
    case "FC":
        // faz algo
        break;
    case "FD":
        // faz algo
        break;
    case "FE":
        // faz algo
        break;
    case "FF":
        // faz algo
        break;
    case "FG":
        // faz algo
        break;
    case "GA":
        // faz algo
        break;
    case "GB":
        // faz algo
        break;
    case "GC":
        // faz algo
        break;
    case "GD":
        // faz algo
        break;
    case "GE":
        // faz algo
        break;
    case "GF":
        // faz algo
        break;
    case "GG":
        // faz algo
        break;
}

Mas eu ainda preferiria uma solução orientada à objetos, de repente utilizando um Map contendo as ações necessárias para cada combinação.

Jothar_Aleksander

Só chamando atenção para o fato de que o @staroski indicou implicitamente a boa prática de usar a nomenclatura CamelCase. Veja como facilitou a leitura/entendimento:

F

Amigo Ricardo,

Concordo contigo, desta maneira o código fica muito feio e fora do padrão de uma boa programação, mas ainda estou estudando a Programação Orientada a Objeto e estou tendo muita dificuldade para entende-la, hoje faço desta maneira para ver o programa funcionando, amanhã substituo por um código mais limpo e profissional.

Mais uma vez, muito obrigado pela ajuda, vcs são 10 !, valeu cara. Fique com Deus.

Armando

F

Amigos, boa tarde, tá tranquilo, valeu peca dica, nos meus códigos, eu levo a nomenclatura muito a sério, na verdade, eu uso txtTomAtual e txtNovoTom , na hora que te escrevi, saiu errado.

VALEUUUUUU !!!

Brigadú !

Criado 18 de setembro de 2019
Ultima resposta 18 de set. de 2019
Respostas 4
Participantes 3