`if InputText == '0' || isempty(InputText)`

in MATLAB is giving error:

Operands to the || and && operators must be convertible to logical scalar values.

I’m looking for an explanation for it. Isn’t `InputText == '0'`

returning a logical value nor the other? Definitely the second is, so what’s the problem with `InputText == '0'`

?

I have a MATLAB script and I want to ask user finish a procedure by either entering a ‘0’ or just pressing space in it; here is the code:

```
if InputText == '0' || isempty(InputText)
break
end
```

and here is the error I get consequently:

Operands to the || and && operators must be convertible to logical scalar values.

Error in test (line 11)

if InputText == ‘0’ || isempty(InputText)

### >Solution :

If `InputText = '012'`

then you can see what your first check outputs:

```
InputText == '0'
>>
ans = [true, false, false]
```

The single quotes indicate a character array, and it is treated similarly to numeric arrays for comparisons, so the output of the `== '0'`

operation is a comparison of each element with `'0'`

. This means the output is nonscalar, so you can’t use it with `&&`

or `||`

.

If you want to check *"is the whole character array InputText equivalent to '0'?"* then you should use

`strcmp`

So your condition would be

```
if strcmp(InputText, '0') || isempty(InputText)
break
end
```