更に、こんな例も出してみる。

1. file1をオープンしてデータを読む
2. file2をオープンしてデータを読む
3. それらを表示する
という単純な処理でも、ここまでひどくなる。

void func()
{
 if (open(file1)) {
  if (str1 = read(file1)) {
   if (open(file2)) {
    if (str2 = read(file2)) {
     if (display(str1, str2) {
      return SUCCESS;
     } else {
      // エラー処理
     }
    } else {
     // エラー処理
    }
   } else {
    // エラー処理
   }
  } else {
   // エラー処理
  }
 } else {
  // エラー処理
 }
 return FAILED;
}