tour: improve explanation of for loops

Give a better explanation and make comparisons to C and Java less
relevant

Change-Id: I4fa612915c582ce064f18f9d3193627c947f61e4
Reviewed-on: https://go-review.googlesource.com/16862
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/content/flowcontrol.article b/content/flowcontrol.article
index d10eee5..e293f59 100644
--- a/content/flowcontrol.article
+++ b/content/flowcontrol.article
@@ -8,13 +8,27 @@
 
 Go has only one looping construct, the `for` loop.
 
-The basic `for` loop looks as it does in C or Java, except that the `(`)` are gone (they are not even optional) and the `{`}` are required.
+The basic `for` loop has three components separated by semicolons:
+
+- the init statement: executed before the first iteration
+- the condition expression: evaluated before every iteration
+- the post statement: executed at the end of every iteration
+
+The init statement will often be a short variable declaration, and the
+variables declared there are visible only in the scope of the `for`
+statement.
+
+The loop will stop iterating once the boolean condition evaluates to `false`.
+
+_Note_: Unlike other languages like C, Java, or Javascript there are no parentheses
+surrounding the three components of the `for` statement and the braces `{`}` are
+always required.
 
 .play flowcontrol/for.go
 
 * For continued
 
-As in C or Java, you can leave the pre and post statements empty.
+The init and post statement are optional. 
 
 .play flowcontrol/for-continued.go
 
@@ -32,9 +46,8 @@
 
 * If
 
-The `if` statement looks as it does in C or Java, except that the `(`)` are gone and the `{`}` are required.
-
-(Sound familiar?)
+Go's `if` statements are like its `for` loops; the expression need not be
+surrounded by parentheses `(`)` but the braces `{`}` are required.
 
 .play flowcontrol/if.go