减少代码嵌套
如题,大家有什么好的方法么?
[解决办法]
等大侠,有个例子lz可以看看
百钱买百鸡
for(gongji=0;gongji<=20;gongji++)
for(muji=0;muji<=33;muji++)
for(xiaoji=0;xiaoji<=20;xiaoji++)
if(gongji+muji+xiaoji==100&&xiaoji+muji*9+gongji*15==300)
,,,,,,
for(gongji=0;gongji<=20;gongji++)
for(muji=0;muji<=33;muji++)
{
xiaoji=100-muji-gongji;
if(xiaoji+muji*9+gongji*15==300)
,,,,,,
}
[解决办法]
具体问题具体分析
算法很关键
[解决办法]
没考虑过,我是这么做的:
需要处理异常时,在handler中集中处理尾巴工作,如资源回收,以及一些初始化工作;
函数内代码较长时,提早return:
if( FALSE==pfAPI() ) return FALSE;
函数内代码不多的话,无所谓了,使用嵌套更使代码清晰、
[解决办法]
- C/C++ code
#include <iostream>using namespace std;void test0(int&, int&, int&);void test1(int&, int&, int&);void test2(int&, int&, int&);inline bool test4(int, int, int);void test0(int& x, int& y, int& z) { for (int x = 1; x <= 20; ++x) test1(x, y, z);}void test1(int& x, int& y, int& z) { for (y = 1; y <= 33; ++y) test2(x, y, z);}void test2(int& x, int& y, int& z) { for (z = 3; z <= 99; z += 3) if (test3(x, y, z)) cout << "(" << x << ", " << y << ", " << z << ")" << endl;}bool test3(int x, int y, int z) { return x + y + z == 100 && x * 5 + y * 3 + z / 3 == 100;}int main() { int x, y, z; test0(x, y, z);}
[解决办法]
如果超过编译器支持的最深嵌套深度,可以将内层嵌套写到一个函数中突破这个限制。