Pure syntactic sugar*. Use them when there is a need, don't bitch if they aren't there. Not to be used as a blanket replacement for for unless you've got a damn good reason.
* I guess they could be an efficiency gain for a language that doesn't have pointer arithmetic exposed, but does have C-array-like-structures.