/*
* 練習問題10.3 p.204
* 練習問題6.1の「週の曜日」を表すenumを使用して、曜日を受け取ってその日が働く日であればtrueを返し、そうでなければ
* falseを返すメソッドを書きなさい。
* 最初にネストしたif-else文を使用して、それから、switch文を使用しなさい。どちらが明瞭なコードだと考えますか。
* Answer: switch
*/
package ch10.ex10_03;
import ch10.ex10_03.EnumTest.day;
public class IsWorkingDay
{
static boolean isWorkingDayIfElse(EnumTest.day target)
{
if (target == day.MONDAY || target == day.TUESDAY
|| target == day.WEDNESDAY || target == day.THURSDAY
|| target == day.FRIDAY)
{
return true;
}
else
{
if (target == day.SATURDAY || target == day.SUNDAY)
{
return false;
}
else
{
throw new IllegalArgumentException();
}
}
}
static boolean isWorkingDaySwitch(EnumTest.day target)
{
switch (target)
{
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
return true;
case SATURDAY:
case SUNDAY:
return false;
default:
throw new IllegalArgumentException();
}
}
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println("monday: " + isWorkingDayIfElse(day.MONDAY));
System.out.println("tuesday: " + isWorkingDayIfElse(day.TUESDAY));
System.out.println("wednesday: " + isWorkingDayIfElse(day.WEDNESDAY));
System.out.println("thursday: " + isWorkingDayIfElse(day.THURSDAY));
System.out.println("friday: " + isWorkingDayIfElse(day.FRIDAY));
System.out.println("saturday: " + isWorkingDayIfElse(day.SATURDAY));
System.out.println("sudnay; " + isWorkingDayIfElse(day.SUNDAY));
System.out.println("");
System.out.println("monday: " + isWorkingDaySwitch(day.MONDAY));
System.out.println("tuesday: " + isWorkingDaySwitch(day.TUESDAY));
System.out.println("wednesday: " + isWorkingDaySwitch(day.WEDNESDAY));
System.out.println("thursday: " + isWorkingDaySwitch(day.THURSDAY));
System.out.println("friday: " + isWorkingDaySwitch(day.FRIDAY));
System.out.println("saturday: " + isWorkingDaySwitch(day.SATURDAY));
System.out.println("sudnay; " + isWorkingDaySwitch(day.SUNDAY));
}
}