在Web开发中是否有C#do-while循环的常见用法?

时间:2011-04-29 05:56:31

标签: c# asp.net-mvc loops razor

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

现在我明白它运行一次,然后检查条件......因为我是一名网络程序员,我想知道:什么是一些常见的Web开发(ASP.NET MVC / Razor最好)场景,其中一个 - while循环完美适合?

我并没有完全理解这个概念......

6 个答案:

答案 0 :(得分:3)

我参与了许多网络项目,我不记得这种类型的循环的任何特定用途。在Web上,您通常只使用项目集合并对每个项目执行一些逻辑。所以我想说大多数网络开发者只使用foreachfor

Do - 虽然更适合算法和计算,但您在经典的Web开发中并没有做很多这样的事情。

答案 1 :(得分:1)

我不了解MVC,但几年前我不得不创建一个管理页面来输入数据,在客户端你可以添加新字段来添加员工成员档案。 (姓名,职称,教育)

控件是使用JavaScript在客户端创建的,并按顺序编号,如:

txtStaffName0

txtStaffName1

txtStaffName2

然后使用do / while,条件检查控件的下一个递增数字。有点像:

int count = 0;
do
{
   //find control with count and do stuff...
   count++;
} while (DoesControlExist(count));

除此之外,我认为我从未见过这样做/在网络相关的东西中使用...

答案 2 :(得分:1)

由于大多数接口逻辑已在客户端实现(为了节省带宽和性能原因),因此几乎不需要此循环。 Web和控制台(或Windows应用程序)中的程序流程之间的区别在于,网页在许多用户的上下文中运行,而Windows应用程序主要由单个用户使用,其中用户可以选择管理控制流,如继续或退出

答案 3 :(得分:0)

我敢打赌,如果遇到需要先检查的情况,语法就会显示出来。

        do {
            // Do your algo first.
        } while (true); // Check later.

现在在实际代码中,我可以假设:

        int x = 100;
        do {
            x = y - 10;
        } while (x >= 0);

它类似于C的for循环中x++++x的概念,它会让你决定现在或稍后递增。

答案 4 :(得分:0)

根据我的经验,循环的使用因需求而异。

如果您遍历集合并对集合中的每个对象执行某些操作,则每个对象都可以免于运行时异常。

但是如果你想根据条件从集合中删除一个项目,那么每个都不起作用,那么for循环是最好的。从collection.count() - 1到0。

常用for循环用于执行某些操作或计算。

我个人很少使用do。

答案 5 :(得分:0)

昨天我差点问这个问题。在我多年的Web开发中,我想不出有一次我在生产代码中使用了do / while。另一方面,我也几乎没有使用递归,但是在我想要它的那几个场合,它很好。

无论如何,this article建议在控制台应用中使用它来显示菜单并在每次输入后重绘它。这是文章代码的编辑片段:

   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,或类似的东西来绕过它,但是/同时轻松完成工作。它不像递归那样必不可少;我认为显着比什么时候更好(如果有的话)。但它是C的延续,它偶尔会有用,所以没有理由摆脱它。