Nest

概要

For 文, If 文, Try ブロックのそれぞれのネストの深さが一定値以下の際に獲得できる実績です. ネストの深さを小さくすることによってプログラムの流れが簡潔になり,変更を加えやすいコードとなります.

タイトル (Lv.1) タイトル (Lv.2) タイトル (Lv.3)
Be in a fog Third time's the charm One-depth-liner
課題 基準値 (Lv.1) 基準値 (Lv.2) 基準値 (Lv.3)
Trial 5以下 3以下 1以下
Lexer 5以下 3以下 1以下
Parser 5以下 3以下 1以下
Checker 5以下 3以下 1以下
Compiler 6以下 4以下 2以下

この実績には,以下の3つのルールが含まれます:

  • NestedForDepth
  • NestedIfDepth
  • NestedTryDepth

NestedForDepth

for 文のネストの深さをチェックします.

コード例

for(int i = 0; i < 10; i++){
  for(int j = 0; j < 10; j++){
    for(int k = 0; k < 10; k++){  // ネストの深さ: 3
      doSomething();
    }
  }
}

このルールのチェックには,Checkstyleの NestedForDepth を用いています.

NestedIfDepth

if 文のネストの深さをチェックします.

コード例

if(foo){
  if(bar){
    if(baz){  // ネストの深さ: 3
      doSomething();
    }
  }
}

このルールのチェックには,Checkstyleの NestedIfDepth を用いています.

NestedTryDepth

try ブロックのネストの深さをチェックします.

コード例

try {
  try { // ネストの深さ: 2
      file.read();
  } finally {
      file.close();
  }
} catch(Exception e) {
  e.doSomething()
}

このルールのチェックには,Checkstyleの NestedTryDepth を用いています.