最爱你的笑qc 2019-10-03 15:55 采纳率: 100%
浏览 247
已采纳

以下代码中的for循环是否多此一举?

import java.util.*;
public class test {
    @SuppressWarnings("deprecation")
    public static void main(String args[]) {
        Stack<Integer> stack = new Stack<Integer>();
        stack.push(new Integer(1));
        stack.push(new Integer(1));
        int k = 1;
        while(k <= 10) {
                for(int i = 1; i <= 2; i++) {  // 就是这个for循环,有没有它都不影响结果
                Integer F1 = stack.pop();
                int f1 = F1.intValue();
                Integer F2 = stack.pop();
                int f2 = F2.intValue();
                Integer temp = new Integer(f1 + f2);
                System.out.println("" + temp.toString());
                stack.push(F1);
                stack.push(temp);
                k++;
            }
        }
    }
}

这个是书上一个输出Fibonacci整数序列的示例代码,堆栈这一节的,利用堆栈避免递归。想了半天也没想明白这个for循环有何意义(有for循环:外层的while循环5次,for每次循环2次,5乘2=10;无for循环,直接循环10次),不都是一样的吗?

出处:java2实用教程(第五版)耿祥义、张跃平著 第451页

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-03 16:07
    关注

    可能是作者原先想通过 for 循环两次,来操作栈中的数据,文中的 pop 操作进行了两次,如果用 for 循环的话,循环内的逻辑就不应该这样写了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?