--
There are Turing-complete languages without conditionals, though - even without data, as such! An example is the lambda calculus. If you want to learn more about this, read up on "Church encoding" and "Scott encoding".
The basic idea is to use functions and the visitor pattern to encode a kind of conditional behaviour that varies with the input supplied to it.
True = (lambda (t f) (t))
False = (lambda (t f) (f))
If = (lambda (b tr fa) (b tr fa))
(lambda (x)
(If x
(lambda () (display "It was true!"))
(lambda () (display "It was false!"))))
Desk check the reductions of applying that function to True and to False. The "t" and "f" arguments to the boolean values act as a kind of "menu" (the visitor pattern), from which the datum selects in order to communicate what variant of data it is. The pattern extends readily to natural numbers, lists, and so on, giving a straightforward encoding of not only conditionals, but also (one-layer-deep) pattern matching.