Your loop is entirely readable, understandable and isn't wrong. Just a warning about standard C# coding practices. Maybe this comes from arrays, where you declare the array [n] where n is the actual size of the array. Then you loop "for (i = 0; i < n ; i++) {...}".
I don't know why the community likes that style, but you see it all the time. One of the reasons I like it on 0 based initial loop values is that it exactly matches the number of loops being made, yet it still looks odd when you see j <= 12.
I don't know why, but some people really don't like to see "++j" instead of "j++" for the third parameter. Maybe they don't like to see ++ in front because it implies that that operation is done first and in a loop, that isn't the case.