# Android Questionwidth = width*(pct*(width>height)) ... Possible?

#### Marc De Loose

##### Member
I would like to write:
width = width*(pct*(width>height))

what would resolve to:
(if width is greater than height)
width = width*(pct*1)

if not
width = width *(pct*0)

is width = width*(pct*(width>height)) somehow possible?

#### LucaMs

##### Expert
No, your code can not work.

I would use:
B4X:
``````Public Sub IIF(c As Boolean, TrueRes As Object, FalseRes As Object) As Object
If c Then Return TrueRes Else Return FalseRes
End Sub

width = width * pct * IIF(width > height, 1, 0)``````

Last edited:

#### MarkusR

##### Well-Known Member
or make this boolean a number
B4X:
``````Sub Test

Dim width,height,pct As Float
width = 200
height  =100
pct = 5

width = width*(pct*B(width>height))

Log(width)

End Sub

Sub B(truefalse As Boolean) As Float

If truefalse Then Return 1.0 Else Return 0.0

End Sub``````

#### Brandsum

##### Well-Known Member
is width = width*(pct*(width>height)) somehow possible?
Yup that's quite easy!!
B4X:
``width = width * (pct * Min(1,Max(width-height,0)) )``

Last edited:
• Jeffrey Cameron and DonManfred

#### LucaMs

##### Expert
Note that IIF is a useful function to be reused; otherwise it was worth using a full "if" block.

• emexes

#### emexes

##### Well-Known Member
I would like to write:
width = width*(pct*(width>height))

what would resolve to:
(if width is greater than height)
width = width*(pct*1)

if not
width = width *(pct*0)

I'd be inclined to just go with:
B4X:
``````if width > height then
width = width * pct
else
width = 0
end if``````
which I feel wins on simplicity, efficiency and brevity, but if you must have it as one statement (if we ignore the called function...) then LucaMs wins:
B4X:
``width = IIF(width > height, width * pct, 0)``
with Brandsum in a close but cryptic second place, assuming width and height are integers ;-)

Last edited: