for (int i = 0; i < 10; i++) { printf("%d", i); doTask(i); }Languages in this family tend to have syntax that is strongly influenced by C, and often inherit other syntactic features of C such as using the semicolon as a statement terminator (not as a separator) and using the three-part "for" statement syntax as shown above.
There are many other ways to identify statement blocks, such as ending keywords that may match beginning keywords (see Pascal, Ada, and REXX), indentation (see Python), or other symbols such as parentheses (see LISP).