사용자가 입력 한 내용에 따라 시즌을 정의하는 메소드가 있습니다. 예 : 1/6 = 겨울 이 코드를 모두 사용하는 대신이 작업을 쉽게 수행 할 수있는 것처럼 보입니다. 어떤 제안?어떻게 단축 할 수 있습니까?
public String getSeason()
{
String result = "UNKNOWN";
if (month == 1 && day >= 1)
{
result = "WINTER";
}
else if (month == 2 && day >= 1)
{
result = "WINTER";
}
else if (month == 3 && day <= 20)
{
result = "WINTER";
}
else if (month == 3 && day >= 21)
{
result = "SPRING";
}
else if (month == 4 && day >= 1)
{
result = "SPRING";
}
else if (month == 5 && day >= 1)
{
result = "SPRING";
}
else if (month == 6 && day <= 20)
{
result = "SPRING";
}
else if (month == 6 && day >= 21)
{
result = "SUMMER";
}
else if (month == 7 && day >= 1)
{
result = "SUMMER";
}
else if (month == 8 && day >= 1)
{
result = "SUMMER";
}
else if (month == 9 && day <= 22)
{
result = "SUMMER";
}
else if (month == 9 && day >= 23)
{
result = "FALL";
}
else if (month == 10 && day >= 1)
{
result = "FALL";
}
else if (month == 11 && day >= 1)
{
result = "FALL";
}
else if (month == 12 && day <= 20)
{
result = "FALL";
}
else if (month == 12 && day >= 21)
{
result = "FALL";
}
return result;
}
그냥 하나에 여러 테스트를 결합 :'경우 (월 <3 || 개월 == 3 && 일 <= 20 || 개월 == 12 && 일> = 21) {결과 = '겨울'} 다른 {...} 등등. 몇몇 테스트는 불필요합니다. 예를 들면'month == 2 && day> = 1'입니다. –
죄송합니다. 다른 옵션을 시도하는 코드를 가지고 놀고 있었고 해당 부분을 다시 잊어 버렸습니다. – SkyVar