比如,下面两段代码int temp=exp();//exp()某个返回int类型的函数
for(int i=0;i<temp;i++){
//某些操作...}//另一段代码for(int i=0;i<exp();i++){
//同上操作...}这两段代码,那段效率更高点呢?
或者,说
int j=1;
for(int i=0;i<j;i++){
j++;
}会不会死循环呢....(帮忙做下实验)

解决方案 »

  1.   

    可能是int temp=exp();
    temp先求出来效率高些了
      

  2.   

    先求出exp()效率高些,因为放在for里的话它每次循环都要计算exp()的值。
      

  3.   

    第一个效率高
    第二个中i<exp()这种用法,我还没看懂第三个是个死循环
      

  4.   

    第一个效率高了,exp()只调用一次,而后者每次循环都得执行,
    第三个是个死循环,i++一次j也会加1
      

  5.   

    1  第一个循环效率要高些,在循环进入之前只调用一次exp(),然后将值赋给局部变量temp
        
       第二个循环每次进入循环条件判断都要调用一次exp(),然后将值赋给一个临时局部变量中(每次循环都要生成新的局部临时变量)2  循环条件中,每次循环i都小于j,循环不会结束,Loop Forever。
      

  6.   

    第一个效率高 
    第二个中i <exp()这种用法,我还没看懂 第三个是个死循环
      

  7.   

    第一个效率高一些,第二个在执行时每次都会算exp()的值,当然效率低了。
    第三个好像是因为j的值是可变的,它可以指向任何一个数,不确定,所以会是死循环
      

  8.   

    放在for里的话它每次循环都要计算exp()的值
    当然是第一个for循环效率要高
    第三个肯定会死循环咯!
    你怎么不自己试试看啊?
      

  9.   

    这样简单的程序做试验很难看的出谁效率高低。
    要记住for里的循环每次都要运行一次,而定义在外的一次赋值就可以了,
      要冷静的考虑,!!考虑才会有进步!!!
      

  10.   

    顺便关注下关于while()循环的问题