zoukankan      html  css  js  c++  java
  • 课堂限时训练-命令行参数·递归

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



    实验说明

    本周课堂实践中,主要是练习了命令行参数的运用。有两个知识点:一是通过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用法不熟练,然后又出现了类型转换不兼容的问题,在检查错误和查阅资料方面,花费了相当长的时间。
    因此要多注重基础知识的积累,注重平时。

  • 相关阅读:
    js怎样生成json的数据
    JS中生成与解析JSON
    [转]js动态创建json类型
    handlebars模板库的资源
    一指流沙,倾覆了谁的年华?
    c# const与readonly 关键字的比较
    静态类和静态构造函数
    编写跨浏览器兼容的 CSS 代码的金科玉律
    mysql 分页sql
    EF报LINQ to Entities 不识别方法“Web_JZRepository.Models.copy_materials_details get_Item(Int32) ”,因此该方法无法转换为存储表达式。
  • 原文地址:https://www.cnblogs.com/yaojingjing/p/7007995.html
Copyright © 2011-2022 走看看