Learning to follow a program step by step is a vital skill when you're trying to master the concepts.
Let's look at the inner loop.
Code:
/* loop 1 */
currentRow = 0
currentStar <= currentRow + (currentRow / 3 )
This is how many stars you want to print on the first loop.
currentRow + (currentRow / 3 ) = 0 + 0/3 = 0 + 0 = 0
Because of the "<=", you will print one star.
/* loop 2 */
currentRow = 1
currentStar <= currentRow + (currentRow / 3 )
currentRow + (currentRow / 3 ) = 1 + 1/3 = 1 + 0 = 1
Two stars will be printed.
/* loop 3 */
currentRow = 2
currentStar <= currentRow + (currentRow / 3 )
currentRow + (currentRow / 3 ) = 2 + 2/3 = 2 + 0 = 2
Three stars will be printed.
/* loop 4 */
currentRow = 3
currentStar <= currentRow + (currentRow / 3 )
currentRow + (currentRow / 3 ) = 3 + 3/3 = 3 + 1 = 4
Five stars will be printed.
etc...
Notice that this is not a perfectly stepped printout, as dictated by the logic.
Also remember that integer division truncates the result, which is why "currentRow/3" produces zero when "currentRow" is 0, 1, and 2.