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 0s in the upper triangle with "":

(LowerTriangularize(ConstantArray("*", {6, 6})) /. (0 -> "")) // Grid