下面的循环,能否优化,执行速度更快?
for(int x=0;x<=60000;x++)
{
    for(int y=0;y<60000;y++)
    {
        ……根据x、y的值执行语句
    }
}

解决方案 »

  1.   

    答案是不一定!!!有时可以优化,看循环里面的代码情况,举例说明:
    如果循环里面的代码如下所示:
    long l1;
    for(int x=0;x <=60000;x++) 

        for(int y=0;y <60000;y++) 
        { 
           long l2=x+y;
        } 

    则可以优化如下:
    long l1;long l2;
    for(int x=0;x <=60000;x++) 

        for(int y=0;y <60000;y++) 
        { 
           l2=x+y;
        } 
    } 原因:l2变量的内存申请次数大大减少!for循环优化的思想:把可以放在for循环外面的代码尽量放在for循环外面,对于多层for循环,尽量放在最外层!
      

  2.   

    在循环中列出x、y的值:
    for(int x=0;x <=60000;x++) 

        for(int y=0;y <60000;y++) 
        { 
            textbox1.text = x.String() + "-" + y.String() +"\r\n";
        } 
    }
      

  3.   

    在循环中列出x、y的值:
    for(int x=0;x <=60000;x++) 

        for(int y=0;y <60000;y++) 
        { 
            textbox1.text = x.String() + "-" + y.String() + "\r\n";
        } 
    }
      

  4.   

    根据代码的优化原则
    在使用多重循环语句时,应该将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数
    for(int x=0;x <=60000;x++) 

        for(int y=0;y <60000;y++) 
        { 
            textbox1.text = x.String() + "-" + y.String() + "\r\n"; 
        } 
    }
    以上应改成如下的for(int y=0;y < 60000;y++) 

        for(int x=0;x<=60000;x++) 
        { 
            textbox1.text = x.String() + "-" + y.String() + "\r\n"; 
        } 
    }
    在内层将会多算X=60000是否会成立的条件,比外层多判断一次