那几乎只剩下递归这一个程序结构了。
def sln(n):
tol = n
if n > 0:
tol += sln(n-1)
return tol
当然因为 Python 语法的限制(+=
返回值为 None,不像 C/C++ 返回值为左值),结构没有 C++ 的实现来得精巧。
int sln(int n) {
int sum = n;
bool flag = (n>0) && (sum += sln(n-1));
// 如果不定义变量,(n>0) && (sum += sln(n-1));
return sum;
}
flag
变量虽然未被使用,但仍有意义:
- 如果 n>0 为假,直接退出,不必执行后边的判断;
- 如果 n>=0为真,则一定要执行后边的判断,
妙就妙在语义判断,本身也包含着一条语句的执行(加法)。
1. 总结
C 语言的全部程序逻辑(无外乎这些):
- for、while:循环
- if、else、switch、case:分支
- 条件判断语句(A?B:C);