什么是做在C / C#/ C ++向后循环的最佳方式? [英] What's the best way to do a backwards loop in C/C#/C++?

查看:132
本文介绍了什么是做在C / C#/ C ++向后循环的最佳方式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要通过一个数组向后移动,让我有code是这样的:

 的for(int i = myArray.Length  -  1; I> = 0;我 - )
{
    // 做一点事
    myArray的[I] = 42;
}

是否有这样做的更好的办法?

更新:我希望,也许C#有这个像一些内置的机制:

  foreachbackwards(INT我在myArray的)
{
    // 太简单
}

更新2:这里的的更好的方法。符文会得到奖金有:

 的for(int i = myArray.Length;我 - 大于0;)
{
    //做一点事
}
//要么
的for(int i = myArray.Length;我 - 大于0;)
{
    // 做一点事
}

它看起来甚至更好的常规的C(感谢Twotymz):

 的for(int i = lengthOfArray;我 - ;)
{
    //做一点事
}


解决方案

虽然承认有点晦涩,我会说,这样做的最赏心悦目的排版方式是

 的for(int i = myArray.Length;我 - 大于0;)
{
    //做一点事
}

I need to move backwards through an array, so I have code like this:

for (int i = myArray.Length - 1; i >= 0; i--)
{
    // Do something
    myArray[i] = 42;
}

Is there a better way of doing this?

Update: I was hoping that maybe C# had some built-in mechanism for this like:

foreachbackwards (int i in myArray)
{
    // so easy
}

Update 2: There are better ways. Rune takes the prize with:

for (int i = myArray.Length; i-- > 0; )
{    
    //do something
}
//or
for (int i = myArray.Length; i --> 0; )
{
    // do something
}

which looks even better in regular C (thanks to Twotymz):

for (int i = lengthOfArray; i--; )
{    
    //do something
}

解决方案

While admittedly a bit obscure, I would say that the most typographically pleasing way of doing this is

for (int i = myArray.Length; i --> 0; )
{
    //do something
}

这篇关于什么是做在C / C#/ C ++向后循环的最佳方式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆