Comparar numero dentro de um intervalo numérico

10 respostas
W

Olá Pessoal, alguém pode me dar uma luz, por exemplo: tenho um número inicial 10 e um numero final 15 ja cadastrados e quero cadastro outros numeros inicial e final que não seja igual ou dentro do intervalo entre 10 e 15, por exemplo: se for cadastrar outro valor inicial 12 e final 16, o sistema me informará que já exite um número dentro desse valor.

Obrigado

10 Respostas

E

Um número x entre 10 (inclusive) e 15 (inclusive)

if (10 <= x && x <= 15)
B

Acredito que o correto seja:

if (10 >= x && x <= 15)
E
barbon:
Acredito que o correto seja:
if (10 >= x && x <= 15)

Sua expressão está errada. Veja o que ocorre quando x == 9.

C

se a intenção é ver se um intervalo “sobrepõe” o outro (não sei se sobrepor é o termo correto), você pode usar o operador || ( or) :

( 10 <= x && x<= 15 ) || ( 10 <= y && y<= 15 )

sendo x e y o início e o fim do intervalo sendo testado…

recomendo criar uma classe para representar esse intervalo e por esta lógica dentro de um método, ao invés de espalhar esses ifs por aí…

W

Acredito que tenha que percorrer
todos os ponteiros

for(int i =0;i.lenght;i++){
if(a == null | b == null)
// recebe as variaveis 
}else{
//emite mensagem de erro
}

acredito que seja dessa forma

P

Tens de fazer mais comparações do que as acima indicadas.

Tendo já um A (inicial) e um B (final) e querendo inserir um novo X (inicial) e Y (final) tens de garantir que NÃO acontece nenhum dos seguintes casos:

(X > A && X < B) --> O novo X calha no intervalo já escolhido
(Y > A && Y < B) --> O novo Y calha no intervalo já escolhido
(X < A && Y > B) --> O novo intervalo contém o intervalo já escolhido

W

E isso ai moçada, valeu Claudiom , deu certo sua dica.

Estou fazendo uma validação de horas onde converti para inteiro mas precisava fazer essa lógica, estou meio enferrujado. Mas o importante é que deu certo

Abraços a todos

C

ok, mas preste atenção na resposta do pmlm, pois existe um caso que não levei em consideração em minha resposta.

W

pmlm:
Tens de fazer mais comparações do que as acima indicadas.

Tendo já um A (inicial) e um B (final) e querendo inserir um novo X (inicial) e Y (final) tens de garantir que NÃO acontece nenhum dos seguintes casos:

(X > A && X < B) --> O novo X calha no intervalo já escolhido
(Y > A && Y < B) --> O novo Y calha no intervalo já escolhido
(X < A && Y > B) --> O novo intervalo contém o intervalo já escolhido

Realmente, o senhor pmlm está correto sua lógica está correta, valeu galera

W

Pessoal estou com um problema nesta lógica

Horário Cadastrado Inicial : 12:00
Horário Cadastrado Final : 13:00

Horário Novo Inicial 12:00
Horário Novo Final 13:00

Esta aceitando e não poderia - Então eu troquei os sinais logico para >= e <= Ai resolveu o problema dos horarios iguais, mas gerou outro. Quando vou gravar um novo horario não aceita 13:00 e sim 13:01 Como resolvo para permetir os 13:00 ?

Criado 30 de julho de 2010
Ultima resposta 18 de ago. de 2010
Respostas 10
Participantes 6