Uso do '%'

Pessoa me surgui uma duvida no uso do operador ‘%’
Eu sei que o uso do ‘%’ nada mais é que o resto de uma divisão inteira.

Ex:
int um = 5 % 2; // 5 dividido por 2 dá 2 e tem resto 1;

Mas e no caso de cálculo desta maneira (numerador maior que o denominador)
int naosei = 1%2;

Alguem poderia me explicar o resultado desta atribuição?

Opá!

1 % 2 = 1

Resto de divisões só funcionam com números inteiros.

Explicando melhor: 1 / 2 = 0 e sobra 1.

humm… vlw
entendii…
mas nesse caso o resrultado seria de : 0,5

o java arrendonda pra 1 números com casa maiores ou iguais a 5?

e se fosse um resultado de 0,4? o Java arrendonda pra 0 ?

15 % 9 = 6

(Note que 15.0 / 9.0 = 1,666666666… que é maior que 0,5, e mesmo assim 15 / 9 é 1. )

Não há “arredondamento” envolvido aí.
É simplesmente uma divisão inteira com resto inteiro, daquelas que se ensinavam a fazer à mão antigamente.

Não é 0,5.

Como o colega já disse, o resultado de 1/2 é 0. 0x1=0
E sobra 1.

0,5 seria se a divisão fosse com ponto flutuante, que esse operador não faz.

Essa propriedade é útil para criar um contador circular. Considere:
i = i % 10;

É um contador que conta de 0 até 9, e depois volta para o 0.

Uma coisa que reparei é que hoje em dia as pessoas têm dificuldade imensa para entender uma divisão inteira.
Dá a impressão que a calculadora substituiu a capacidade de fazer contas; portanto, explicar o que é uma divisão inteira (ainda ensinam a fazer isso na escola ? ) é tarefa sobre-humana.
Por isso, fico às vezes maravilhado com algumas pessoas que conseguem fazer contas de cabeça e dar o troco corretamente sem usar uma calculadora; esse tipo de pessoas era muito comum antigamente, mas hoje é bem difícil encontrá-las. (Não estou me referindo àqueles orientais que têm um ábaco (ou “soroban” ) na cabeça, estou falando de gente como a gente).

Sabendo disso que desde o primario evitei usar calculadoras para resolver contas.

Bom gente… Obrigado pela ajuda… essa questão ficou meio confusa pra mim mesmo…

mas agora entendi… tem que desprezar casas ao fazer a conta

EX:

1/2 = 0 resto 1 , Então: 1%2 = 1
15/9 = 1 resto 6, Então: 15%9 = 6

vlw pela atenção de todos!

Desprezar casas???

Considere que divisão de inteiro por inteiro sempre vai dar um resultado inteiro independente de vc fazer essa conta em uma variavel double.

Como a variavel que armazena o 1 / 2 é inteira e os números são inteiro entao ele so mostra a parte inteira da conta (a parte decimal é simplesmente cortada e não arredondada).

No caso do % ele só mostra o resto da divisão mesmo.

Sei, sei… você consegue extrair uma raiz quadrada usando só lápis e papel? Digamos, a raiz quadrada (inteira, é claro; não quero nenhuma casa depois da vírgula) de 21462 ?

Bom, ele disse que evitou, não que nunca usou, hheheheh.

Mas vai saber se ele não é filho do Rain Man.

Ou se o Mark tem um ábaco na cabeça …

Calma… eu só disse que evitei. Me senti inutil agora. :frowning:

Mas de qualquer forma vemos no colegial muitas pessoas resolvendo contas de multiplicação/divisão/adição/subtração na calculadora pela dificuldade com numeros. Para essas operações nunca precisei e para algumas coisas mais complexas também. E hoje em dia na faculdade vejo pessoas com os mesmos problemas, problemas que não tenho por não ter esse costume.

Não fique triste… não é bom quando você pode dividir a conta no restaurante sem precisar de puxar uma calculadora?

:smiley: Isso sim. :smiley:
Exemplo que já até aconteceu. ^^