本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
cs:programming:cpp:courses:comp306:start:unit_1_2_3 [2024/09/15 06:22] – [Conditionals and recursion] codinghare | cs: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 -> '' | ||
+ | * 递归 -> '' | ||
+ | ====Furitful functions==== | ||
+ | ===return value=== | ||
+ | * 返回的类型需要和函数定义的返回类型一致 | ||
+ | * 存在条件语句时,满足条件分支中的 return 会直接跳出函数 | ||
+ | * 另外一部分不会被执行的 code 被称为 //Dead code// | ||
+ | * 这种情况下需要保证所有的分支都存在 return | ||
+ | ===Development=== | ||
+ | ==Incremental development== | ||
+ | * 使用小步骤渐进式的编写程序 | ||
+ | * 使用临时变量测试中间值,保证每一步修改的正确性 | ||
+ | * 移除所有的测试语句(// | ||
+ | ==Composition== | ||
+ | * 使用已有的函数组合生成新的函数 | ||
+ | ===Overloading=== | ||
+ | * 两个函数重名时且**接收的参数不同**,时,同时使用会导致函数的重载(// | ||
+ | * 使用时需要确保调用的函数是希望的版本 | ||
+ | ==Boolean== | ||
+ | * 只有 ture 和 false 两种值 | ||
+ | * 可以被用作 flag | ||
+ | ===Logocal operator=== | ||
+ | * 三种: ''&&'', | ||
+ | ==Bool functions== | ||
+ | * 返回 boolean 的函数 | ||
+ | * 通常用于检测 | ||
+ | ===Main return=== | ||
+ | * '' | ||
+ | * 出问题时通常返回 '' | ||
+ | |||