我尝试进行以下练习,但我不确定我是否做了所需要的。你能看看我的代码是否正确或是否缺少某些东西?
此外,我想知道是否需要(或如何做)将DateTime.Now.DayOfWeek与变量isVacation一起使用,这样程序可以看到我们得到了哪一天,并说我们是否入睡。我玩了一下,但我没有成功。
练习:如果工作日是工作日,则参数工作日为真,如果我们正在休假,则参数休假为真。
如果不是工作日或者我们正在度假,我们会睡觉。
sleepIn(false,false) - >真
sleepIn(true,false) - >假
sleepIn(false,true) - >真
public bool CanSleepIn(bool isWeekday, bool isVacation) {}
我的代码:
static void Main(string[] args)
{
CanSleepIn(true, false);
Console.WriteLine("Do we sleep in today?{0}", CanSleepIn(false, false));
Console.WriteLine("Do we sleep in today?{0}",CanSleepIn(true,false));
Console.WriteLine("Do we sleep in today?{0}",CanSleepIn(false,true));
Console.WriteLine("Do we sleep in today?{0}", CanSleepIn(true, true));
Console.ReadLine();
}
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
if (isWeekday == false && isVacation == false)
return true;
else if (isWeekday == true && isVacation == false)
return false;
else
return true;
}
感谢您的帮助,我希望能够提出这样的问题。
如果没有,只是有人让我知道:)。
答案 0 :(得分:1)
您可以按如下方式缩短CanSleepIn
方法:
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
return !isWeekday || isVacation;
}
为什么呢?如果不是工作日或您正在度假,您可以入住。在数学意义上,OR
并不是唯一的,因此它也是一个工作日和你正在度假的条件。
话虽如此,您可以按如下方式更改对方法的调用:
bool isWeekend = (DateTime.Now.DayOfWeek == DayOfWeek.Saturday ||
DateTime.Now.DayOfWeek == DayOfWeek.Sunday);
bool canSleepIn1 = CanSleepIn(!isWeekend, true);
bool canSleepIn2 = CanSleepIn(!isWeekend, false);
如果当前日期是星期六或星期日,则isWeekend
变量为true。我们将此作为!isWeekend
传递,因为您的方法要求我们告诉它是否为工作日,定义为not weekend
。
答案 1 :(得分:1)
只需将您的英语短语翻译成代码:
如果不是工作日或者我们正在度假,我们会入睡。
如果句子的其余部分中指定的条件是CanSleepIn
"不是工作日"我们可以睡觉意味着true
必须返回true可以写成!isWeekday
,"或"是||
,"度假"只是isVacation
。
所以您的CanSleepIn
变为:
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
return !isWeekday || isVacation;
}
答案 2 :(得分:0)