Comparar se um numero é divisível por 100

o que há de errado com a instrução :

[code]

public boolean eBissexto ()
{
boolean valor = true;

if ( bissexto % 100 ) {

valor == false;

} else if ( bissexto % 400) {

valor == true;

}

}[/code]

Bissexto é uma variavel de instância do tipo int.

Tipo booleano em java não funciona como em C.

Este if só ira funcionar se vc colocar um booleano(ou algo que retorne um) nele.

No casso vc teria que fazer o seguinte

if(numero % 100 == 0){

bla bla

}

Essa expressão

a % b

Retorna o resto da divisão de a por b.

Isso é um número inteiro, não um valor booleano. Para ser booleano você deve compara-lo, com ==, >= ou outra expressão lógica de comparação.

Você inverteu as condições, é importante testar por 400 primeiro, pois todo número divisível por 400 é também divisível por 100 (já que 400=100x4).

Também faltou o return e testar a divisão por 4.

public boolean eBissexto(int ano) { if (ano % 400 == 0) return true; if (ano % 100 == 0) return false; if (ano % 4 == 0) return true; return false; }

haha sabia que tava estranho!

desta forma não estarei comparando o resto da divisão com o valor 0?

Sim. E não era isso que você queria?

Então ViniGodoy, eu gostaria de saber se o ano que eu digitar é divisível por 100, ou seja se me retornaria um inteiro. Caso sim seria true.

Um número é divisível por outro se o resto da divisão dele por esse outro for 0.

Lembre-se, é com o resto que você calcula as casas após a vírgula.

Por exemplo:

12 / 8 = 1, resto 4.

Para calcular após a vírgula:
Multiplicamos o resto por 10: 40, isso nos coloca na primeira casa decimal após a virgula.
Dividimos por 8 novamente.
40 / 8 = 5, resto 0.

Logo, 12 / 8 = 1,5.

Se o resto for zero, com certeza não existem casas após a vírgula.

Ah entendi, muito obrigado!