Square matrices
Let the matrix 
A contain 
N rows and the same number of columns. Such matrices are called 
square.
Square matrices have main and secondary diagonals.
 
Main diagonal - the diagonal that goes from the top left corner to the bottom right corner.
Side diagonal- goes from upper right corner to lower left corner.
Then, to iterate over all elements on the main diagonal, one loop is enough:
pseudocode:
for i from 0 to N-1
     working with A[i][i]
The same loop can iterate over the elements of the secondary diagonal.
For elements on the side diagonal, the sum of the row and column indices is constant and equals N-1. 
pseudocode:
for i from 0 to N-1
     working with A[i][N-1-i]
To process all elements located on the main diagonal and below it, you need a nested loop:
- line number changes from 
0 to 
N-1;
- column number from 
0 to 
i.
pseudocode:
for i from 0 to N-1
  for j from 0 to i
     working with A[i][j]