一个函数一件事
约 10 分钟
一个函数如果又读数据、又计算、又输出,会又长又乱,看不懂也难改。让一个函数只干一件事,它的名字才好起,也才好复用和测试。
反例:什么都塞在一个函数里。
int readSumPrint() { // 名字都不知道怎么起
int n, x, s = 0;
cin >> n;
for (int i = 0; i < n; i++) { cin >> x; s += x; }
cout << s << endl;
return s;
}
拆成三个,各管一段:
int readN() { int n; cin >> n; return n; } // 只负责读
int sumArray(int a[], int n) { // 只负责算
int s = 0;
for (int i = 0; i < n; i++) s += a[i];
return s;
}
void printResult(int s) { cout << s << endl; } // 只负责输出
拆开的好处很实在:sumArray 不碰输入输出,任何地方都能复用;想单独验证“求和”对不对,直接喂它一个数组就行,不用管键盘输入。
判断信号:如果一个函数的名字里出现了“并”“和”“再”(读入并求和并打印),十有八九该拆了。名字起不短,往往就是职责太多。
小纸条
给"读入并求和并打印"拆成三个函数,各起个名。
登录 后可看答案