Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#带bool和DayOfWeek的初学者练习_C# - Fatal编程技术网

C#带bool和DayOfWeek的初学者练习

C#带bool和DayOfWeek的初学者练习,c#,C#,我试着做下面的练习,但我不确定我是否做了所需的。你能看一下并检查我的代码是否正确,或者是否缺少什么吗 另外,我想知道是否需要(或者如何实现)使用DateTime.Now.DayOfWeek和变量Is Vacation,这样程序就可以看到我们得到了哪一天,并告诉我们是否睡懒觉。我玩了一会儿,但没能做到 练习:如果是工作日,参数weekday为true;如果我们在度假,参数vacation为true 如果不是工作日或者我们在度假,我们就睡懒觉 睡眠(假,假)->真 睡觉(对,错)->错 睡眠(假,真

我试着做下面的练习,但我不确定我是否做了所需的。你能看一下并检查我的代码是否正确,或者是否缺少什么吗

另外,我想知道是否需要(或者如何实现)使用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; 
}

你的程序输出是什么?我投票结束这个问题,因为它是关于代码审查的。它可能更适合于。感谢您让我知道,并且很抱歉。在这里发布此问题。这不是问题。:)