# procedural programming – how can i get the following figure using the for loop

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
``````