C# 如何在给定次数的情况下执行while循环?
我有这个while循环来获得下一个工作日,不包括节假日和周日。 但它的计算方法是加上1天。我希望用户给出一天的天数。我从下面的文本框TboxIzin中获取输入 如何执行while循环来进行给定次数的计算C# 如何在给定次数的情况下执行while循环?,c#,winforms,while-loop,C#,Winforms,While Loop,我有这个while循环来获得下一个工作日,不包括节假日和周日。 但它的计算方法是加上1天。我希望用户给出一天的天数。我从下面的文本框TboxIzin中获取输入 如何执行while循环来进行给定次数的计算 int i = 1; int sayi; IzinIslem i1 = new IzinIslem(); int.TryParse(i1.TboxIzin.Text, out sayi); 我得到的不是所有代码路径都返回
int i = 1;
int sayi;
IzinIslem i1 = new IzinIslem();
int.TryParse(i1.TboxIzin.Text, out sayi);
我得到的不是所有代码路径都返回一个值
尝试嵌套while循环时出错。您可以更改else子句以中断循环。然后从循环中返回
while (true)
{
if (weekendDays.Contains(date.DayOfWeek) ||
holidayDates.Contains(date))
date = date.AddDays(1);
else
break;
}
return date;
您可以更改else子句以中断循环。然后从循环中返回
while (true)
{
if (weekendDays.Contains(date.DayOfWeek) ||
holidayDates.Contains(date))
date = date.AddDays(1);
else
break;
}
return date;
while是一个条件循环。在这里,您在条款中加入了一个非条件,并立即添加一个条件。将条件放入while子句中:
while(weekendDays.Contains(date.DayOfWeek) || holidayDates.Contains(date)) {
date = date.AddDays(1);
}
return date;
出现错误的实际原因是编译器无法预测if条件是否会解析为false。如果没有,则函数永远不会返回
对于修改后的while循环,这种情况可能仍然会发生,但它会导致无限循环,如果您以这种方式攻击自己,编译器就可以了。while是一个条件循环。在这里,您在条款中加入了一个非条件,并立即添加一个条件。将条件放入while子句中:
while(weekendDays.Contains(date.DayOfWeek) || holidayDates.Contains(date)) {
date = date.AddDays(1);
}
return date;
出现错误的实际原因是编译器无法预测if条件是否会解析为false。如果没有,则函数永远不会返回
对于修改后的while循环,这种情况可能仍然会发生,但它会导致无限循环,如果你用这种方式攻击自己,编译器也会很好。让我们在GetNextWeekDay中获取所有UI的rif,如int.TryParsei1.TboxIzin.Text,out sayi;: 或者,如果您更喜欢Linq,可以将循环重写为
return Enumerable
.Range(1, 1000)
.Select(day => date.Date.AddDays(day))
.TakeWhile(item => item.Year - date.Year <= 1)
.First(item => !wends.Contains(item.DayOfWeek) && !hds.Contains(item));
让我们在GetNextWeekDay中获取所有UI的rif,如int.TryParsei1.TboxIzin.Text,out sayi;: 或者,如果您更喜欢Linq,可以将循环重写为
return Enumerable
.Range(1, 1000)
.Select(day => date.Date.AddDays(day))
.TakeWhile(item => item.Year - date.Year <= 1)
.First(item => !wends.Contains(item.DayOfWeek) && !hds.Contains(item));
考虑使用而不是使用。并确保在for/while.for之后返回;weekendDays.Containsdate.DayOfWeek | | holidayDates.Containsdate;日期=date.AddDays1;然后返回日期;错误是因为在while循环之后没有包含return语句。这可能看起来是一个永远不会执行的地方,但也可能是在出现异常的情况下。如果您可以提前计算重复次数,请使用。如果您不知道将有多少,请使用while。@DmitryBychenko以及如何处理输入?。在我的代码中,i =计数,Sayi=从TyBox输入的数字。考虑使用而不是在使用。并确保在for/while.for之后返回;weekendDays.Containsdate.DayOfWeek | | holidayDates.Containsdate;日期=date.AddDays1;然后返回日期;错误是因为在while循环之后没有包含return语句。这可能看起来是一个永远不会执行的地方,但也可能是在出现异常的情况下。如果您可以提前计算重复次数,请使用。如果您不知道将有多少,请使用while。@DmitryBychenko以及如何处理输入?。在我的代码中,i=计数,sayi=从文本框输入数字。