当前位置: 首页 > 编程语言 > C#

c#中的for和while循环分享

时间:2023-04-10 13:47:22 C#

c#中的for和while循环for(i=0;i<=10;i++){....}i=0;while(i<=10){....i++;在for或while循环中,哪一个更好,性能明智?(更新)实际上-在一种情况下for构造更有效;遍历一个数组。只要您在条件中使用arr.Length,编译器/JIT就会优化此方案:for(inti=0;i在这种非常特殊的情况下,它会跳过边界检查,因为它已经知道它永远不会出去有趣的是,如果你“提升”arr.Length以尝试手动优化它,你可以防止这种情况发生:intlen=arr.Length;for(inti=0;i但是,对于其他容器(List等),作为手动微优化,提升是非常合理的。(最后更新)无论如何;无论如何,for循环在引擎盖下被评估为while循环。例如,ECMA334的12.3.3.9(明确分配)指示forLoops:for(for-initializer;for-condition;for-iterator)embedded-statements本质上是等价的(从定义赋值的角度来看(不完全等同于说编译器必须生成这个IL)):{for-initializer;while(for-condition){embedded-statement;LLoop:for-iterator;}}使用continue语句将for语句转换为以标签LLoop为目标的goto语句。如果是for条件,则评估明确赋值,就好像for条件在上面的扩展中被替换为true一样。现在,这并不意味着编译器必须做同样的事情,但实际上它几乎......我会说它们是相同的,你不应该像这样进行微优化。性能将是相同的。但是,除非您需要在循环外访问i变量,否则您应该使用for循环。这会更干净,因为我只在一个块内有范围。程序效率来自正确的算法、良好的对象设计、智能的程序架构等。使用for循环和while循环减少一两个循环永远不会使您的程序运行缓慢,或者您的程序运行缓慢。如果您想在本节中提高程序性能,请找到一种方法来部分展开循环(参见Duff的设备),或者提高循环内部的性能。没有任何。它们是等价的。您可以将“for”循环视为编写while循环的一种更紧凑的方式。是的,它们是等效的代码片段。以上就是C#学习教程:c#中for循环和while循环分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多加关注---本文收集自网络,不代表立场,如涉及侵权,请指教点击右侧联系管理员删除。如需转载请注明出处: