IfOp should have only one branch. An IfOp operator takes a `cond` variable whose value must be a vector of N boolean elements. Its return value has M (M<=N) instances, each corresponds to a true element in `cond`.
```python
importpaddleaspd
x=var()
y=var()
cond=var()
b=pd.create_ifop(inputs=[x],output_num=1)
withb.true_block():
x=b.inputs(0)
z=operator.add(x,y)
b.set_output(0,operator.softmax(z))
out=b(cond)
```
If we want the output still has N instances, we can use IfElseOp with a default value, whose minibatch size must be N:
```python
importpaddleaspd
x=var()
y=var()
cond=var()
default_value=var()
b=pd.create_ifelseop(inputs=[x],output_num=1)
withb.true_block():
x=b.inputs(0)
z=operator.add(x,y)
b.set_output(0,operator.softmax(z))
withb.false_block():
x=b.inputs(0)
z=layer.fc(x)
b.set_output(0,operator.softmax(z))
out=b(cond)
```
If only true_block is set in an IfElseOp, we can have a default value for false as: