우선 윤년의 조건이다.
1. 4로 나누었을 때 나머지가 0인 년도
2. 4로 나누어 떨어졌을때 나머지가 0이라도 100으로 나누었을 때도 나머지가 0이면 평년
3. 4로 나누어 떨어졌을 때 나머지가 0이고 100으로 나누었을때도 나머지가 0이지만 , 400으로 나누어 떨어지면 윤년
package chap03;
import java.util.Scanner; // 입력
public class plus {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int num;
while(true) {
System.out.printf("년도를 입력하세요 : ");
num = s.nextInt();
if(num%4==0) {
System.out.println(num + "년은 윤년입니다.");
}
else if((num%4 == 0 & num%100 == 0) & num%400 == 0) {
System.out.println(num + "년은 윤년입니다.");
}
else if(num%4==0 & num%100 == 0) {
System.out.println(num + "년은 윤년이 아닙니다.");
}
else {
System.out.println(num + "년은 윤년이 아닙니다.");
}
}
}
}
위에는 if-else if문을 이용하여 짠 코드이다. 다소 복잡해보이고 조금 번거롭기 때문에
package chap03;
import java.util.Scanner; // 입력
public class plus {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("년도를 입력하세요: ");
int num = s.nextInt();
boolean x = (num % 4) == 0;
boolean y = (num % 100) != 0;
boolean z = ((num %100 == 0) && (num % 400 == 0));
if(x && (y||z)) {
System.out.println(num + "년은 윤년 입니다.");
}
else {
System.out.println(num + "년은 윤년이 아닙니다.");
}
s.close();
}
}
위에 코드 처럼 조건문을 부울변수에 넣고 다시 if-else문을 사용하여 더욱 간결하게 풀어내었다.
'JAVA > 2020 프로그램' 카테고리의 다른 글
[JAVA] 가위바위보 게임 (0) | 2019.12.08 |
---|---|
[JAVA] 별찍기 (0) | 2019.12.08 |
[JAVA] 알파벳 프로그램 (0) | 2019.12.07 |
[JAVA] 소수점 두자리까지 같은 지 확인 (0) | 2019.12.07 |
양수 판단 코드 (0) | 2019.12.07 |