[quote=Diguinho.Max]como disse Vingdel
anos bisextos sao todos multiplos de 4. voce pode fazer de diversas maneiras pode criar varias anoincio e anofim e fazer com for.
dica: use % para saber o resto da divisão para comparar um ano se ele é bisexto!
só pensar um pouquinho! :D[/quote]
Sim, todos anos bisextos são multiplos de 4, porém nem todo ano que é multiplo de 4 é bisexto.
A regra vai além dessa usada por você, Diguinho.Max.
Por exempo 1700, 1800, 1900, estes anos são multiplos de 4, porém não são bisextos.
CURIOSIDADE: Nesses casos o intervalo é de 8 anos para o próximo ano bisexto, isso agrava ainda a situação de quem nasceu no dia 29 de fevereiro (brincadeira rs), ainda bem que esse evento só acontece a cada 100 anos.
Aí está onde a regra do múltiplo de 4 é complementada pela do não-múltiplo de 100.
Essa regra complementa a regra do múltiplo de 400.
Então uma forma de se testar em java seria:
if((ano%4 == 0 && ano%100 !=0) || ano% 400 == 0)
O raciocínio do código que o Rauel postou está perfeito, porém é para linguagem C e não para java, além disso estão faltando parênteses para fechar o || (ou lógico), os parênteses que sintetizam a condição do while( … ).
Por fim, fiz aqui um raciocínio para imprimir os anos bisextos em um intervalo de anos, inclusive os limites casos sejam bisextos, claro.
[code]/* Imprimi anos bisextos em um intervalo de anos
- Autor: Delano Lima
- Data: 24/10/2011
*/
import java.util.Scanner;
public class Bisexto{
public static void main(String[] args){
int inicio, fim;
Scanner entrada = new Scanner(System.in);
System.out.print("Qual o ano inicial?: ");
inicio = entrada.nextInt();
System.out.print("Qual o ano final?: ");
fim = entrada.nextInt();
while(inicio <= fim){
if ( (inicio % 4 == 0 && inicio % 100 != 0) || inicio % 400 == 0 ){
System.out.println("Ano Bisexto: "+inicio);
inicio = inicio+4;
}else{
inicio++;
}
}
}
}[/code]Espero que eu tenha ajudado a esclarecer alguma coisa.
Abraço!