#include <iostream>
using namespace std;
int main()
{
int range = 20;
int totalCombinations = 0;
for(int i=1; i<=range-2; i++)
{
if(range>i)
{
for(int j=1; j<=range-1; j++)
if(j>i)
{
for(int k=1; k<=range-1; k++)
if(k>j)
{
for(int l=1; l<=range-1; l++)
if(l>k)
{
for(int m=1; m<=range-1; m++)
if(m>l)
{
for(int f=1; f<=range; f++)
if(f>m)
{
cout << " " <<i<< " " <<j<< " " <<k<< " " <<l<< " " <<m<< " " <<f;
cin.get(); //pause
totalCombinations++;
}
}
}
}
}
}
}
cout << "TotalCombinations:" << totalCombinations;
}
最佳答案
if(range>i)
为什么不从 可以轻松地将其重构为 range
开始 i
来避免这个问题呢?for
条件的一部分。不需要额外的条件。
if(j>i)
为什么不从 i
开始 j
呢?
...(对其他两个循环重复)
这摆脱了一半的嵌套。就循环本身而言,我建议对它们使用 Extract Method。
关于c++ - 在重构深度嵌套的代码时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408432/