在web开发中,C#do while循环有什么常见用途吗?
我已经写了很长很长时间的代码,自学成才。现在我正在攻读计算机科学学位,我的编程课正在讨论测试后的循环,即do-while循环 现在我知道它只运行一次,然后检查条件。。。由于我是一名web程序员,我想知道:什么是一些常见的web开发(最好是ASP.NET MVC/Razor)场景,其中do-while循环非常适合在web开发中,C#do while循环有什么常见用途吗?,c#,asp.net-mvc,loops,razor,C#,Asp.net Mvc,Loops,Razor,我已经写了很长很长时间的代码,自学成才。现在我正在攻读计算机科学学位,我的编程课正在讨论测试后的循环,即do-while循环 现在我知道它只运行一次,然后检查条件。。。由于我是一名web程序员,我想知道:什么是一些常见的web开发(最好是ASP.NET MVC/Razor)场景,其中do-while循环非常适合 我还没有完全理解这个概念…我参与了许多web项目,我记不起这种循环的具体用途。在web上,您通常只处理项目集合,并对每个项目进行一些逻辑处理。所以我想说,大多数web开发人员只使用for
我还没有完全理解这个概念…我参与了许多web项目,我记不起这种循环的具体用途。在web上,您通常只处理项目集合,并对每个项目进行一些逻辑处理。所以我想说,大多数web开发人员只使用
foreach
和for
Do-While更适合于算法和计算,而在经典的web开发imo中,你不会做很多这类事情。我不知道MVC的具体情况,但几年前我不得不创建一个管理页面来输入数据,在客户端,你可以添加新字段来添加员工档案。(姓名、职称、学历) 这些控件是用JavaScript在客户端创建的,并按如下顺序编号: txtStaffName0 txtStaffName1 txtStaffName2 然后使用do/while和条件检查控件的下一个递增数字。大致如下:
int count = 0;
do
{
//find control with count and do stuff...
count++;
} while (DoesControlExist(count));
除此之外,我认为我从未见过在web相关的东西中使用do/while…因为大多数接口逻辑都是在客户端实现的(为了节省带宽和性能原因),所以这个循环几乎没有必要。web和控制台(或windows应用程序)中的程序流之间的另一个区别是,对于许多用户来说,web页面在上下文中运行,而windows应用程序主要由单个用户使用,用户可以选择管理控制流,如继续或退出。我打赌语法揭示了这一切,如果出现这种情况,您需要在检查之前先执行
do {
// Do your algo first.
} while (true); // Check later.
现在在实际代码中,我可以假设:
int x = 100;
do {
x = y - 10;
} while (x >= 0);
这就像C的for循环中的
x++
和++x
的概念一样,它使您决定现在或以后递增。根据我的经验,循环的用法会根据需要而变化
如果迭代一个集合,并对集合中的每个对象执行一些操作,则每个对象都不会出现运行时异常。但对于每个都不起作用,如果您想根据条件从集合中删除项,则for循环是最好的。从collection.count()执行从-1到0的操作。
常用for循环用于执行某些操作或计算。
就我个人而言,我很少使用do while。我昨天几乎要问这个问题。在我多年的web开发中,我想不出有哪一次在生产代码中使用do/while。另一方面,我也很少使用递归,但在我需要它的少数情况下,拥有它是很好的 无论如何,建议在控制台应用程序中使用它来显示菜单,并在每次输入后重新绘制。下面是本文代码的一个编辑片段:
string myChoice;
do
{
// Print A Menu
Console.WriteLine("My Address Book\n");
Console.WriteLine("A - Add New Address");
Console.WriteLine("D - Delete Address");
Console.WriteLine("Q - Quit\n");
Console.WriteLine("Choice (A,D,M,V,or Q): ");
// Retrieve the user's choice
myChoice = Console.ReadLine();
// Make a decision based on the user's choice
switch(myChoice)
{
case "A":
Console.WriteLine("You wish to add an address.");
break;
case "D":
Console.WriteLine("You wish to delete an address.");
break;
case "Q":
Console.WriteLine("Bye.");
break;
}
Console.WriteLine();
} while (myChoice != "Q"); // Keep going until the user wants to quit
这似乎相当有用。当然,您可以通过将
myChoice
的初始值设置为“Q”以外的值,或者通过在while
条件中添加bool,或者类似的方法来解决这个问题,但是do/while可以稍微轻松地完成任务。它不像递归那样重要;我不认为有多少(如果有的话)比while做得更好。但是它是C语言的一种保留,偶尔会有用,所以没有理由放弃它。这个问题就像问在什么情况下螺丝刀合适。嗯,我想这是真的。假设do-while循环是一个平头螺丝刀。我希望Eric Lippert注意到这个问题,我很好奇他对do/while的看法,以及他为什么选择包含它。贾斯汀:记住,我是在C#3.0开发期间加入C#团队的。在C#1.0的开发过程中,我一直在使用JScript。我没有决定什么循环进入C#1.0。确切地说,我从来没有遇到过。。。我这样问是因为我可能错过了一项有价值的技术。谢谢你的回答。我明白了。。。也许这就是为什么我没有看到一个用于web开发的应用程序(很多时候,深层业务逻辑代码可能会运行一些算法,但不会经常共享)。谢谢谢谢Dowhile循环将用于什么样的事情(而不是客户端)?