gpt4 book ai didi

c# - 如何执行给定次数的while循环?

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:28 24 4
gpt4 key购买 nike

我有这个 while 循环来获取下一个工作日,不包括节假日和星期日。但它是通过添加 1 天来计算的。我希望用户给出该天数。我从下面的 TextBox (TboxIzin) 获得该输入。

如何执行 while 循环来计算给定的次数?


int i = 1;
int sayi;
IzinIslem i1 = new IzinIslem();
int.TryParse(i1.TboxIzin.Text, out sayi);
            public static DateTime GetNextWeekDay(DateTime date, 
IList<Holiday> holidays, IList<DayOfWeek> weekendDays)
{
int i = 1;
int sayi;
IzinIslem i1 = new IzinIslem();
int.TryParse(i1.TboxIzin.Text, out sayi);

// always start with tomorrow, and truncate time to be safe
date = date.Date.AddDays(1);

// calculate holidays for both this year and next year
var holidayDates = holidays.Select(x => x.GetDate(date.Year))
.Union(holidays.Select(x => x.GetDate(date.Year + 1)))
.Where(x => x != null)
.Select(x => x.Value)
.OrderBy(x => x).ToArray();

// increment to get working day
while (true)
{
if (weekendDays.Contains(date.DayOfWeek) ||
holidayDates.Contains(date))
date = date.AddDays(1);
else
return date;
}

}

我得到并非所有代码路径都返回一个值 当我尝试嵌套 while 循环时出错。

最佳答案

while 是一个条件循环。在这里,您在子句中放置了一个非条件,然后立即跟进了一个条件。将条件放在 while 子句中:

while(weekendDays.Contains(date.DayOfWeek) || holidayDates.Contains(date)) {
date = date.AddDays(1);
}

return date;

您收到错误的实际原因是编译器无法预测您的 if 条件是否会解析为 false。如果没有,那么您的函数永远不会返回。

使用修改后的 while 循环,这可能仍然会发生,但它会导致无限循环,如果你那样搬起石头砸自己的脚,编译器是没问题的。

关于c# - 如何执行给定次数的while循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com