Hello,

I want an if statement with multiple values,

Will it work like this? It doesn't give an error

```
if (x == 12 || x == 16 || x == 19 || ...)
or like this
if ((17,18,19,20 == val))
```

Hello,

I want an if statement with multiple values,

Will it work like this? It doesn't give an error

```
if (x == 12 || x == 16 || x == 19 || ...)
or like this
if ((17,18,19,20 == val))
```

The first one is correct. The second one - I have never seen this in C++.

thehardwareman: The first one is correct. The second one - I have never seen this in C++.

Okay thank you!

rico459: or like this

`if ((17,18,19,20 == val))`

This is equivalent to:

```
if (17) // This 'if' will always be 'true' since 17 is not zero
```

The 'comma operator' (using a comma in an expression) evaluates both sides and returns the left side.

Are your values arbitrary, or do they follow a pattern? You can make expressions to test a pattern, for example your second one could be:

```
if (val >= 17 and val <=20)
```

If you had a regular series:

12, 16, 20, 24, 28, 32

you could test like:

```
if (val/4 >= 3 and val/4 <= 8)
```

johnwasser: This is equivalent to:

`if (17) // This 'if' will always be 'true' since 17 is not zero`

The 'comma operator' (using a comma in an expression) evaluates both sides and returns the left side.

No, the last value is used, so it is equivalent to

```
if (val == 20)
```

rico459:

Will it work like this? It doesnâ€™t give an error

A useful exercise here would be to design an experiment to find out

oqibidipo: No, the last value is used, so it is equivalent to

`if (val == 20)`

Oops, you're right. My mistake.