カッコの中にカッコがあって、さらにその中にカッコがあって...といったもののこと。「入れ子(構造)」と訳されます。
void func()
{
if(a == 0)
{
if(b == 1)
for(x = 0; x < 10; x++)
for(y = 0; y < 10; y++)
xy[x][y] = 0;
else
for(x = 0; x < 10; x++)
for(y = 0; y < 10; y++)
xy[x][y] = x * 10 + y;
}
}
というのがそう。
やむを得ないこともあるけど、あまりネストが深いときはプログラムに無駄があることが多いです。中の方の処理を関数にするのも手。
ネストが深いとプログラムが読みにくく、処理の整合性がとりにくくなるため、バグを誘発する危険性があります。
ちなみに、上のやつはネストを減らすと
void func()
{
if(a)
return;
for(x = 0; x < 10; x++)
for(y = 0; y < 10; y++)
xy[x][y] = (b == 1) ? 0 : x * 10 + y;
}
のようになります。