治腰椎间盘膨出费用:请比较下面两个FOR循环的优缺点

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 19:11:14
1.for(i=1;i<N;i++)
{
if(condition)
dosomething();
else
dootherthing();
}

2.if(condition)
{
for (i=1;i<N;i++)
dosomething()
}
else
{
for (i=1;i<N;i++)
dootherthing()
}
两个FOR循环各有各自的优点和缺点,请分别说明。

我来说一下吧,其实这2段代码的效率问题是差不多的,因为要判断一个表达式的真假,几乎不需要时间,重要的是:
前者:
优点:条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.
缺点:如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.

后者:
优点:只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性.

呵呵,希望我的回答能为你带来收获.

我来说一下吧,其实这2段代码的效率问题是差不多的,因为要判断一个表达式的真假,几乎不需要时间,重要的是:
前者:
优点:条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.
缺点:如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.

后者:
优点:只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性.

呵呵,希望我的回答能为你带来收获.

  我来说一下吧,其实这2段代码的效率问题是差不多的,因为要判断一个表达式的真假,几乎不需要时间,重要的是:
  前者:
  优点:条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.
  缺点:如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.

  后者:
  优点:只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
  缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性.

for (i=0; i<N; i++)
{
if (condition)
DoSomething();
else
DoOtherthing();
}

/***************************** /

if (condition)
{
for (i=0; i<N; i++)
DoSomething();
}
else
{
for (i=0; i<N; i++)
DoOtherthing();
}

第一个比较好

首先,我需要知道这2个for循环的具体内容。
其次,我才能根据内容回答你的问题。
最后,我才能追答。