# Multiple condition Expression - Nested If Statement?

**URL:** <https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105>\
**Category:** Ignition\
**Created:** [July 20, 2022, 7:29am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105 "2022-07-20T07:29:07Z")\
**Posts on this page:** 12\
**Page:** 2

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 11, 2024, 9:00am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/21 "2024-04-11T09:00:44Z")

</div>

You have ORed your three checks so that if any one of them is within limits then `True` is returned. You need to AND them.

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [April 11, 2024, 1:20pm UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/22 "2024-04-11T13:20:10Z")

</div>

If your `if` returns `true` or `false`, you don't need an if.

```auto
limit_l1 < tag1 && tag1 < limit_h1
&&
limit_l2 < tag2 && tag2 < limit_h2
&&
limit_l3 < tag3 && tag3 < limit_h3 

```

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 6:55am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/23 "2024-05-16T06:55:07Z")

</div>

Hello

```python
if({tag0}=1,"ON",
    if({limit_l1} < tag1 && tag1 <{ limit_h1}
       &&
      { limit_l2} < tag2 && tag2 < {limit_h2}
       &&
       {limit_l3} < tag3 && tag3 <{ limit_h3}, True, False),
   "OFF")
   

```

I am trying to use this code in Expression binding if tag 0 is 1 it should check if tag1,2,3 are in limits if in limits it has to return True else False. If the tag 0 is 0 it has to return OFF But i am getting runtime exception.

---

<div class="post-metadata">

**Author:** ![Ujwal\_Wankhede](https://avatars.discourse-cdn.com/v4/letter/u/4af34b/32.png) [@Ujwal\_Wankhede](https://forum.inductiveautomation.com/u/Ujwal_Wankhede)\
**Post date:** [May 16, 2024, 7:16am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/24 "2024-05-16T07:16:53Z")

</div>

```python
if({tag0}=1,
    if({limit_l1} < tag1 && tag1 <{ limit_h1}
       &&
      { limit_l2} < tag2 && tag2 < {limit_h2}
       &&
       {limit_l3} < tag3 && tag3 <{ limit_h3}, True, False),
   "OFF")

```

Try removing ~~"ON",~~

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 7:59am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/25 "2024-05-16T07:59:21Z")

</div>

Tried its still showing error.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [May 16, 2024, 8:00am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/26 "2024-05-16T08:00:01Z")

</div>

> [@srija\_somisetty](#):
>
> But i am getting runtime exception.

What is the exception message? You can examine it at the bottom of the binding editor.

Your expression can return boolean `true` or `false` but can also return a string `OFF`. That doesn't look right and suggests some confusion or poor design.

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 8:05am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/27 "2024-05-16T08:05:56Z")

</div>

It is showing runtime exception

> "Runtime Exception: Function if(condition, true return, false return) can not work with one arguments."

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [May 16, 2024, 8:24am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/28 "2024-05-16T08:24:03Z")

</div>

Post a nicely cropped screengrab showing the binding, the expression structure and the code.

You also need to explain why your function can return either a boolean or a string.

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 8:47am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/29 "2024-05-16T08:47:06Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/5/4538e35a5bb1343ae333c85818fb65deb3ff84b1.png)  
The function has to return either true, false or OFF so that i can map separate color for each state.

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 8:51am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/30 "2024-05-16T08:51:23Z")

</div>

don't know how but the error is resolved thank you.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [May 16, 2024, 8:57am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/31 "2024-05-16T08:57:19Z")

</div>

I'd say this will come back to bite you later.

Instead of passing `true`, `false` and `OFF` to the map transform pass values `OK`, `Fault` and `OFF` (or a numeric code) and use the Fallback option. This would be more readable.

---

<div class="post-metadata">

**Author:** ![srija\_somisetty](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@srija\_somisetty](https://forum.inductiveautomation.com/u/srija_somisetty)\
**Post date:** [May 16, 2024, 9:09am UTC](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105/32 "2024-05-16T09:09:49Z")

</div>

I will surely change thank you.

[Previous page](https://forum.inductiveautomation.com/t/multiple-condition-expression-nested-if-statement/62105.md?page=1)
