• 课堂限时训练-命令行参数·递归


    课堂限时训练-命令行参数·递归



    实验说明

    本周课堂实践中,主要是练习了命令行参数的运用。有两个知识点:一是通过Integer将字符串转换为数字;二是递归函数的调用。

    代码实现

    • 码云链接

    • 核心代码:

      • 普通方法:
      • 递归调用:
    • 结果展示

    实践中的问题和解决方法

    • 问题:递归实验中,出现以下问题:

    • 解决方法:
      将代码int sum=clSum(10)改为
    • 分析原因:递归函数clSum中的参数是int [] 类型,而调用语句int sum = clSum(10),中的“10”为int类型,两者无法兼容,产生冲突。并且,要传进来的参数是数组的值,而并非个数,因此传10本身就是错误的。
      修改为int[] x=new int[10];int sum=clSum(x)后,x为int [] 类型,与被调参数的类型一致,问题解决。

    实验分析

    本次实验实际上很简单,最核心的就是通过Integer将字符串转换为数字,然后换一种方式,练习递归函数的调用。应该解决的最主要的问题就是:数组中是以字符串的形式存储的,因此应当首先将字符串转换为数字,才能进行接下来的求和运算。
    实验中,

    int k;
            for (int i = 0; i < args.length; i++) {
                k = Integer.parseInt(args[i]);
                sum=sum+k;
            }
    

    语句 k = Integer.parseInt(args[i])实现了将数组args[i]通过Integer转换为数字类型,然后通过一个循环内的作和,从而实现相加运算。
    另外,递归调用是一种简单、常用又重要的一种编程思想。就是在当前的函数中调用当前的函数并传给相应的参数,这是一个动作,这一动作是层层进行的,直到满足一般情况的的时候,才停止递归调用,开始从最后一个递归调用返回。从而实现,将大问题分解成小问题,将复杂的问题简单化。在本例中,要算出一个10元素的数组的和,只要先算出前9个的和,再加上最后一个就好了;要算出前9个的和,只要先算出前8个的和就好了;直到只剩下一个元素的时候,返回该元素,即可。

    学到了什么

    首先,学会了Integer的用法,如何实现将字符串转换为数字;然后巩固了递归调用的思想和具体方法。以后遇到此类问题会较快发现问题,从而不在类似方面犯错。

    感悟与体会

    通过本次实践的练习,了解到基础知识不牢固。刚开始Integer用法不熟练,然后又出现了类型转换不兼容的问题,在检查错误和查阅资料方面,花费了相当长的时间。
    因此要多注重基础知识的积累,注重平时。

  • 相关阅读:
    eclipse中设置自动生成的author,date等注释
    【转】科大校长给数学系学弟学妹的忠告&本科数学参考书
    Eclipse的properties文件中文乱码解决方法
    log4j快速入门
    启动tomcat出现Removing obsolete files from server... Could not clean server of obsolete ……错误
    eclipse构建及运行maven web项目
    Eclipse+Maven创建webapp项目
    linux中通过lsof恢复删除的文件,前题是fd被占用。
    IP工具类-自己动手做个ip解析器
    第4章 集合类
  • 原文地址:https://www.cnblogs.com/yaojingjing/p/7007995.html
Copyright © 2020-2023  润新知