A simple C program:
int x = 10;
int y = 10;
if (x == y) {
x += 3;
else {
x -= 3;
}
printf("%d\n", x);
A translation of that as a brainfuck program.
++++++++++ |x| store x
> |x|0|
++++++++++ |x|y| store y
duplicate x
<[->>+>+<<<] |_0_|y|x|x| duplicate x
>>>[-<<<+>>>] |x|y|x|_0_| restore x in the original position
duplicate y
<<[->>+>+<<<] |x|_0_|x|y|y|
>>>[-<<<+>>>] |x|y|x|y|_0_|
compare x and y
<<[>>+<<-] |x|y|_0_|y|x|
>[>-<-]> |x|y|0|0|_x minus y_|
<+> |x|y|0|1|_x minus y_|
[ else
<-
<<<---
>>>>
[+]
]
<
[ if x == y
<<<+++
>>>-
]
<<<.
#
Multiplication is fun!
++++++++++
>+++
<[->>>+>+<<<<]
>>>>[<<<<+>>>>-] |10|3|0|10|_0_|
<[
-
<<[->>>+>+<<<<]
>>>>[<<<<+>>>>-] |10|3|0|10|3|_0_|
<[-<<+>>] |10|3|3|9|_0_|
<
]
Your loops are broken ...