C#带bool和DayOfWeek的初学者练习
我试着做下面的练习,但我不确定我是否做了所需的。你能看一下并检查我的代码是否正确,或者是否缺少什么吗 另外,我想知道是否需要(或者如何实现)使用DateTime.Now.DayOfWeek和变量Is Vacation,这样程序就可以看到我们得到了哪一天,并告诉我们是否睡懒觉。我玩了一会儿,但没能做到 练习:如果是工作日,参数weekday为true;如果我们在度假,参数vacation为true 如果不是工作日或者我们在度假,我们就睡懒觉 睡眠(假,假)->真 睡觉(对,错)->错 睡眠(假,真)->真C#带bool和DayOfWeek的初学者练习,c#,C#,我试着做下面的练习,但我不确定我是否做了所需的。你能看一下并检查我的代码是否正确,或者是否缺少什么吗 另外,我想知道是否需要(或者如何实现)使用DateTime.Now.DayOfWeek和变量Is Vacation,这样程序就可以看到我们得到了哪一天,并告诉我们是否睡懒觉。我玩了一会儿,但没能做到 练习:如果是工作日,参数weekday为true;如果我们在度假,参数vacation为true 如果不是工作日或者我们在度假,我们就睡懒觉 睡眠(假,假)->真 睡觉(对,错)->错 睡眠(假,真
public bool CanSleepIn(bool是工作日,bool是假期){}
我的代码:
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;
}
谢谢你的帮助,我希望你能问这样的问题
如果没有,请有人告诉我:)您可以将
CanSleepIn
方法缩短如下:
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
return !isWeekday || isVacation;
}
bool isWeekend = (DateTime.Now.DayOfWeek == DayOfWeek.Saturday ||
DateTime.Now.DayOfWeek == DayOfWeek.Sunday);
bool canSleepIn1 = CanSleepIn(!isWeekend, true);
bool canSleepIn2 = CanSleepIn(!isWeekend, false);
为什么??如果不是工作日或者你在度假,你可以睡懒觉。从数学意义上讲,或
不是排他性的,因此这是一个工作日并且您正在度假的条件也包括在内
也就是说,您可以按如下方式更改对方法的调用:
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
return !isWeekday || isVacation;
}
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
,因为您的方法要求我们告诉它是否是工作日,这被定义为不是周末
编码要求:
return !isWeekday || isVacation;
但我建议您在此类问题中使用。只需将您的英语短语翻译成代码: 如果不是工作日或者我们在度假,我们就睡懒觉 我们可以睡眠意味着如果句子剩余部分中指定的条件为
true,则CanSleepIn
必须返回true
“非工作日”可以写入!isWeekday
,“is|
,“on vacation”只是isVacation
因此,您的CanSleepIn
变为:
public static bool CanSleepIn(bool isWeekday, bool isVacation)
{
return !isWeekday || isVacation;
}
你的程序输出是什么?我投票结束这个问题,因为它是关于代码审查的。它可能更适合于。感谢您让我知道,并且很抱歉。在这里发布此问题。这不是问题。:)