for(int i=0;i<10;i++){}这个是顺序1,2,3...
for(int i=10;i>0;i--){} 倒叙9,8,7...中间的int i=0;i<10;i++  int i=10;i>0;i-- 能否为变量我想根据条件顺序或倒序运行主程序,但不想因为颠倒一下循环的顺序就把for里面的主代码拷贝一份。。类似这样伪代码
object o=int i=0;i<10;i++ ;
if(type==1){o=int i=10;i>0;i--}
for(o){}

解决方案 »

  1.   

        他中间就是变量啊 就像 list.length list.count
        这些不都是变量么?
      

  2.   

    private void TestLoop()
    {
        Action voidAction = delegate()
        {
            //你的代码
        };
        for(int i=0;i<10;i++)
        {
            voidAction();
        }
        for (int i = 10; i > 0; i--)
    {
            voidAction();
    }
    }
      

  3.   

    object o=int i=0;
    编译就不会通过吧
      

  4.   

    不可以的吧,这是for的语法啊
      

  5.   

    拷贝一份是很正常的。。难道你想重新写for循环,或者你用while循环吧。while(true){}
      

  6.   

    如果你是vs2005
    private void TestLoop()
    {
        System.Threading.ThreadStart voidAction = (System.Threading.ThreadStart)(delegate
        {
            //你的代码
        });
        for (int i = 0; i < 10; i++)
        {
            voidAction();
        }
        for (int i = 10; i > 0; i--)
        {
            voidAction();
        }
    }
      

  7.   


    int i=0;
    for(;i<10;i++)
    {
        i += i;
    }int[] arr = {1,2,3,4,5};
    foreach(int i in arr)
    {
        i += i;
    }
      

  8.   

    那个长度是可以用变量的,比如i<num,可后面i++/i--不能用变量,这是固定语法。
      

  9.   


    public void add(int a)
    {
        int i = a;
        if(i == 10)
        {
            for(;i>0;i--)
            {
                i *= i;
            }
        }
        if(i == 1)
        {
            for(;i<10;i++)
            {
                i += i;
            }
        }
    }
      

  10.   

    可以把条件转化到FOR循环外面嘛
      

  11.   

        for (int i = 0; i < 10; i++)
        {
            voidAction();
        }
        for (int i = 10; i > 0; i--)
        {
            voidAction();
        }
    }
      

  12.   

    LZ不行的哦,这样写不符合for循环的语法的,一定会报错的。建议断点调试看看就知道了
      

  13.   

    for(int i=0;i<10;i++){}这个是顺序1,2,3...
    for(int i=10;i>0;i--){} 倒叙9,8,7...******************************************************    class Program
        {
            static void Main(string[] args)
            {
                display(0);
                Console.ReadKey();
            }        static void display(int x)
            {
              bool first=true;
              bool seqasc=true;
              for(int i=x;first?(x==0?!(seqasc=i>=10):seqasc):seqasc?(i>0):(i<10);)
                {
                    first = false;
                  Console.WriteLine(i);
                  i+=(seqasc?-1:1);
                }
            }
        }
    应该还能再简化一下,
      

  14.   

    for(int i=0;i<10;i++){}这个是顺序1,2,3...
    for(int i=10;i>0;i--){} 倒叙9,8,7...******************************************************    class Program
        {
            static void Main(string[] args)
            {
                display(0);
                Console.ReadKey();
            }        static void display(int x)
            {
              bool first=true;
              bool seqasc=true;
              for(int i=x;first?(x==0?!(seqasc=i>=10):seqasc):seqasc?(i>0):(i<10);)
                {
                    first = false;
                  Console.WriteLine(i);
                  i+=(seqasc?-1:1);
                }
            }
        }
    应该还能再简化一下,
      

  15.   

    for(int i=0;i<10;i++){}这个是顺序1,2,3...
    for(int i=10;i>0;i--){} 倒叙9,8,7...******************************************************    class Program
        {
            static void Main(string[] args)
            {
                display(0);
                Console.ReadKey();
            }        static void display(int x)
            {
              bool first=true;
              bool seqasc=true;
              for(int i=x;first?(x==0?!(seqasc=i>=10):seqasc):seqasc?(i>0):(i<10);)
                {
                    first = false;
                  Console.WriteLine(i);
                  i+=(seqasc?-1:1);
                }
            }
        }
    应该还能再简化一下,
      

  16.   

    我就不简化了。再弄强大一点
    private void TestLoop()
    {
        Action<int> voidAction = delegate(int i)
        {
            //你的代码,可以通过i来访问你当前循环的变量i了。
        };
        for (int i = 0; i < 10; i++)
        {
            voidAction(i);
        }
        for (int i = 10; i > 0; i--)
        {
            voidAction(i);
        }
    }