It's because they have conditions in them which increase the number of tests needed to ensure that the code is correct.
Also probably if
s have less complexity than loops (while
, for
). Also read up on cyclomatic complexity related to this.
Read this blog post, it describes the actual reality of not being able to test everything and the sheer number of tests you require to test everything.