Operador condicional

4 respostas
rocha

Olá pessoal como eu utilizo o operador ? nessa expressão:

if (((“usuario1”.equals(login) || “usuario2”.equals(login) )))

quero q me retorne falso

Rocha

4 Respostas

smota

Hein?

vc quer que retorne false se seu login for igual a “usuario1” ou “usuario2” ?!? Negue a comparação de igualdade …

O exemplo com o operador que você quer: return ( !("usuario1".equals(login) || "usuario2".equals(login)) ? false : true )

O exemplo sem complicação que você quer: return !("usuario1".equals(login) || "usuario2".equals(login))

cv1

Ou ainda…

boolean loginPermitido = !(("usuario1".equals(login) || "usuario2".equals(login)))
T

Se por acaso você tiver N usuários e não quiser puxar essa informação de uma base (obviamente nunca se deve deixar isso “hardcoded”, mas às vezes isso é necessário) você pode tentar algo como

if (Arrays.binarySearch (new String[]{"usuario1", "usuario10", "usuario11", "usuario2", "usuario3", "usuario4", "usuario5", "usuario6", "usuario7", "usuario8", "usuario9"}, login) >= 0) {
...
}

O que foi feito: procura-se a variável “login” em um array de Strings, já ordenado alfabeticamente (veja que primeiro vem “usuario1”, depois “usuario10”, e só depois é que vem “usuario2”).
Arrays.binarySearch retorna um número >= 0 se encontrar, e < 0 se não achar.

rocha

Valeu pessoal!!!

Criado 28 de fevereiro de 2005
Ultima resposta 28 de fev. de 2005
Respostas 4
Participantes 4