Reports loops with an if statement that can end with break without changing the semantics. This prevents redundant loop iterations.

Example:


  boolean found = false;
  for (int i = 0; i < arr.length; i++) {
    if (Objects.equals(value, arr[i])) {
      found = true;
    }
  }

After the quick-fix is applied:


  boolean found = false;
  for (int i = 0; i < arr.length; i++) {
    if (Objects.equals(value, arr[i])) {
      found = true;
      break;
    }
  }

New in 2019.2