What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cs:programming:cpp:courses:comp306:start:unit_1_2_3 [2024/09/15 06:22] – [Conditionals and recursion] codingharecs:programming:cpp:courses:comp306:start:unit_1_2_3 [2024/09/15 13:00] (当前版本) – [Infinite Recursion] codinghare
行 334: 行 334:
   * 注意缩进   * 注意缩进
 ===Recursion=== ===Recursion===
 +  * 函数调用自身
 +  * 通过自身参数的变化来进行下一步的处理
 +==Infinite Recursion==
 +正常的递归需要
 +    * base case
 +    * 趋向于 Base case 的条件
 +==更多的递归形式==
 +  * 阶乘
 +    * base -> ''0!=1''
 +    * 递归 -> ''f(n!) = n * f(n-1)''
 +====Furitful functions====
 +===return value===
 +  * 返回的类型需要和函数定义的返回类型一致
 +  * 存在条件语句时,满足条件分支中的 return 会直接跳出函数
 +    * 另外一部分不会被执行的 code 被称为 //Dead code//
 +    * 这种情况下需要保证所有的分支都存在 return
 +===Development===
 +==Incremental development==
 +  * 使用小步骤渐进式的编写程序
 +  * 使用临时变量测试中间值,保证每一步修改的正确性
 +  * 移除所有的测试语句(//scaffolding//
 +==Composition==
 +  * 使用已有的函数组合生成新的函数
 +===Overloading===
 +  * 两个函数重名时且**接收的参数不同**,时,同时使用会导致函数的重载(//overloading//
 +  * 使用时需要确保调用的函数是希望的版本
 +==Boolean==
 +  * 只有 ture 和 false 两种值
 +  * 可以被用作 flag
 +===Logocal operator===
 +  * 三种: ''&&'', ''||'', ''!''
 +==Bool functions==
 +  * 返回 boolean 的函数
 +  * 通常用于检测
 +===Main return===
 +  * ''0'' 代表正常
 +  * 出问题时通常返回 ''-1''
 +