> For the complete documentation index, see [llms.txt](https://ccapeng.gitbook.io/programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ccapeng.gitbook.io/programming/topic-fundamental/topic-condition.md).

# Condition

In this section, all the methodologies are just for best practice. That's for most easy to read and maintain.

## Straight forward logic

* Take care the true condition first

  ```javascript
    if (flag) {

    } else {

    }
  ```

  not

  ```
    if (!flag) {

    } else {

    }
  ```

  Also, remember to have curly brace, don't omit them even only line of statement.
* Use straight forward logic

  ```python
    if x is not None:
  ```

  not

  ```
    if not x is None:
  ```

  All the code fragments are logic correctly, but please approach best practice.
* Ternary operator

  Use it when it's short and simple; otherwise, use if else.

  ```javascript
    var a = flag ? b : "";
  ```

## Multiple condition

* Multiple or/not
  * For easy to read, bread down multiple lines

    ```javascript
      if (
          myObjects.length > 0 &&
          flag == true
      ) {

      }
    ```
  * Unless, they are very short

    ```javascript
      if (a > 0 && b > 0) {

      }
    ```
* Multiple functions

  ```javascript
    if (
        isNew(myObjects) &&
        containsNumber(myObjects)
    ) {

    }
  ```

  In the example, if `isNew()` is false, then `containsNumber()` won't be executed.

  You don't do the following code; unless `isNumber` is going to use again.

  ```javascript
    var isNewObjs = isNew(myObjects);
    var isNumber = containsNumber(myObjects);
    if (isNewObjs && isNumber) {

    }
  ```
