在web开发中,C#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

我已经写了很长很长时间的代码,自学成才。现在我正在攻读计算机科学学位,我的编程课正在讨论测试后的循环,即do-while循环

现在我知道它只运行一次,然后检查条件。。。由于我是一名web程序员,我想知道:什么是一些常见的web开发(最好是ASP.NET MVC/Razor)场景,其中do-while循环非常适合


我还没有完全理解这个概念…

我参与了许多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循环将用于什么样的事情(而不是客户端)?