首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

减少代码嵌套,该如何处理

2012-05-03 
减少代码嵌套如题,大家有什么好的方法么?[解决办法]等大侠,有个例子lz可以看看百钱买百鸡for(gongji0gon

减少代码嵌套
如题,大家有什么好的方法么?

[解决办法]
等大侠,有个例子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);}
[解决办法]
如果超过编译器支持的最深嵌套深度,可以将内层嵌套写到一个函数中突破这个限制。

热点排行