Welcome to MMA SE! What the code above does is simply repeatedly overwrite the value of A
. In each iteration of the loop, it evaluates A = i + j
, so the A
at the end of the loop is simply i + j
for the last i
, j
in the loop.
You could do a For
loop where you initialize A
to a table, and then set different parts of A
, e.g. A((i,j)) = "*"
. That’s not advisable in Mathematica, but it would look like this:
n=6;
A = ConstantArray("", {n,n});
For(i=1,i<=n,i++,For(j=1,j<=i,j++,A((i,j)) = "*"));
A // Grid
(Note an important change from the given code: we use j <= i
, not j <= n
.)
But it’s far easier to simply use Table
(or Array
, for an alternative approach) to generate matrices, with a conditional statement in each entry that test if i < j
:
Table(If(i < j, "", "*"), {i, 6}, {j, 6}) // Grid
Another way: you could also use LowerTriangularize
on a 6 by 6 ConstantArray
of "*"
, and replace all the resulting 0
s in the upper triangle with ""
:
(LowerTriangularize(ConstantArray("*", {6, 6})) /. (0 -> "")) // Grid