Comparando números em Java

A linguagem de programação Java tem abundância de pequenos rabiscos e bugigangas para as suas diversas necessidades de formação de condição. Esta secção diz-lhe tudo sobre eles. Esta tabela mostra os operadores que você pode usar para comparar uma coisa com outra.

Operadores de comparação
símbolo do operadorSignificadoExemplo
==é igual anumberOfCows == 5
!=não é igualbuttonclicked! = PanicButton
lt;é menos do quenumberOfCows lt; 5
>é melhor quemyInitial> 'B'
lt; =é inferior ou igual anumberOfCows lt; = 5
> =é maior que ou igual amyInitial> = 'B'

Você pode usar os operadores de comparação, todos do Java para comparar números e caracteres. Quando se comparam os números, as coisas vão muito bem a maneira que você acha que eles devem ir. Mas quando você compara personagens, as coisas são um pouco estranho.

Comparando letras maiúsculas uns com os outros não é problema. Uma vez que a carta B vem ordem alfabética antes H, a condição 'B' lt; 'H' é verdade. Comparando letras minúsculas uns com os outros, também está bem. O que é estranho é que quando você compara uma letra maiúscula com uma letra minúscula, a letra maiúscula é sempre menor. Assim, mesmo que 'Z' lt; 'UMA' é falso, 'Z' lt; 'uma' é verdade.

Sob o capô, as letras UMA através Z são armazenados com códigos numéricos 65 através de 90. As letras uma através z são armazenados com os códigos 97 a 122. É por isso que cada letra maiúscula é menor do que cada letra minúscula.

Tenha cuidado quando você compara dois números para a igualdade (com ==) Ou desigualdade (com !=). Depois de fazer alguns cálculos e obtenção de dois duplo valores ou dois flutuador valores, os valores que têm raramente são mortos na iguais um ao outro. (O problema vem de esses dígitos traquinas além do ponto decimal.)

Por exemplo, o equivalente Fahrenheit de 21 graus Celsius é 69,8, e quando você calcula 9,0 / 5 * 21 + 32 à mão, você obtém 69,8. Mas o estado 9,0 / 5 * 21 + 32 69,8 == acaba por ser falsa. Isso porque, quando o computador calcula 9,0 / 5 * 21 + 32, ele fica 69,80000000000001, não 69,8.

menu