The value is "undefined" because the definitions of mathematics do not cover that case.
Divisions started life as a solution to multiplications, where one of the factors was unknown.
6 * ? = 24
The solution, using the definitions of mathematics for multiplication, is 4, because that gives us
6 * 4 = 24
This is how the Greeks did this kind of problem over 2000 years ago.
The concept we call "division" is very recent, and is a "shortcut". (In mathematics, there are only two operations: addition and multiplication, and both are based on the single operation at the basis of Number Theory: add 1)
The division asks us to find the missing factor:
12/4 = ?
is the same as asking to solve
4 * ? = 12
The "division by zero" asks the question
12/0 = ?
0 * ? = 12
which value "?", when multiplied by 0, will give 12.
Such a value does not exist. Therefore, dividing some value by 0 is impossible to solve.
The special case of 0/0 is slightly different:
0/0 = ?
0 * ? = 0
Here, ? could be anything (including 0 itself). It is impossible to define what value we need to put for "?".
The answer is "undefined"
The very subtle difference (between undefined and impossible) makes it possible to have SOME cases where there actually is an answer.
For example, let's say you must solve the following division of polynomials
(x^3 + 4x^2 + x - 6)/(x^2 + 4x - 5)
where x = 1
You put 1 instead of x on top, and you get a sum of 0 for that polynomial.
You do the same with the bottom, and its sum is also 0.
You are stuck with 0/0
However, in THIS case, you can use other tricks, such as limits.
Find the value for x approaching 1 from below (x = 0.9, x=0.99, x = 0.999)
and do the division in all cases (this is relatively easy with a calculator or a spreadsheet)
Find the value for x approaching 1 from above (x = 1.1, x = 1.01, x=1.001)
You will see that in both cases, the value of the division gets closer and closer to 2
In THIS particular case, the value of 0/0 = 2