# doWhileLoop

## Description

Loop runs, and it continues to repeat as long as the condition remains true, executes the loop first then evaluates the condition.

## Input / Parameter

| Name      | Description                               | Input Type | Default | Options | Required |
| --------- | ----------------------------------------- | ---------- | ------- | ------- | -------- |
| condition | The condition to evaluates after the loop | boolean    | -       | -       | Yes      |

## Output

N/A

## Callback

### yesCallback

This will be triggered for every loop that happens while the condition remains true.

## Example

In this example, we will do console logging by using `console` function in `doWhileLoop` callback

### Code Equivalent

```
let m = 0;
do {
  m++;
  console.log("do while loop"+m);
} while(m < 5);
```

### Steps

1. Drag a `button` component into the canvas and open the `Action` tab. Select the `press` event of the button and drag the `setVar` function to the event flow, add the value `m` on `var` param and add the value `0` on `value` param.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-c55b7f166a87503c4766219533262a1aa29d0b26%2FdoWhileLoop-step-1.png?alt=media)
2. Drag the function `doWhileLoop` to the eventflow, on it's `condition` param change the param type to function/subflow then add function `less` inside the subflow, for the `value1` param change the param type to function/subflow then add function `getVar` inside the subflow, for the `var` param add value `m`.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-a160d324b2026f8c26b7d3699c98969e8124819b%2FdoWhileLoop-step-2.png?alt=media)
3. Drag the function `setVar` inside function `doWhileLoop` yes callback, add value `m` on param `var` and change the param type to subflow/function on param `value`. Inside param `value` subflow add `add` function then on it's `value1` change the param type to subflow/function, add `getVar` function in it, then put `m` on it's `var` param value.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-ae3ef478deaec2067f118e8800cbc3056ac8578a%2FdoWhileLoop-step-3.png?alt=media)
4. Drag the function `console` inside function `doWhileLoop` yes callback, change the param type to subflow/function on param `value`. Inside param `value` subflow add `plus` function then on it's `value1` param add `do while loop` value, as for `value2` param change the param type to subflow/function, add `getVar` function in it, then put `m` on it's `var` param value.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-c91cd75120aaa69b3cb6be37428bc452559999e6%2FdoWhileLoop-step-4.png?alt=media)

### Result

1. Now click the button in preview, it will show the list of `do while loop` with the current loop number on the console.

   ![](https://399701567-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwmJ1RKjM2uNFaL6fO3Xu%2Fuploads%2Fgit-blob-780ba23b0e369193fc73e7fde4a3e76d1e65b72f%2FdoWhileLoop-result-1.png?alt=media)

## Links

### Related Information

See also:

* Functions
  * [plus](https://docs.emobiq.com/emobiq-client/006-actions-and-visual-logic/action-reference/cordova/math/plus)
