Having simple code like this:int A=5;object X=Console.ReadLine()if(Condition)   DoSomething();else   DoStuff();DoSomethingElse();Some sources say there are actually 4 branches: First unconditional, two for the IF and another unconditional after the IF statement.Some say there are only two branches.What would be correct?E.g. here:http://www.ruleworks.co.uk/testguide/BS7925-2-Annex-B7.asp
Is unconditional code considered a branch?
testing;unit testing;complexity;test coverage
The origins of the word 'branch' in code comes from assembly.  An example of this can be seen in MIPS assembly.  A branch is a conditional statement.Before anyone jumps on me for point out that MIPS has a b instruction which has the description of branch unconditionally the key to the difference between b (branch unconditionally) and j (jump) is that the branch statements work off of relative addresses and the jump statements work off of absolute addresses.There is also some terminology of unconditional branch in the realm of branch prediction.  A CPU with a pipeline will try to guess which way a branch statement goes and where it will end up after the branch.  It is possible to analize the assembly to see that a given branch will always execute given a certain set of conditions at the start of the pipline.  For example, the branch is based on if register 1 is greater than 0 or not.  If register 1 is 0, and no instructions in the pipeline change that, it is in essence an unconditional branch which can be executed safely (and not having to worry about flush the pipeline after speculative execution or stall until the branch can be decided).All of the above was for very low level code.  In higher level code (as demonstrated in the question) the terminology of a branch is where code may follow two (or more in the case of a switch (pun not intended)) different paths.  From wikipediaA branch is sequence of code in a computer program which is conditionally executed depending on how the flow of control is altered at the branching point.Unconditional code is not conditionally executed and thus is not a branch.