| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| // Dart test for continue in for, do/while and while loops. | |
| import "package:expect/expect.dart"; | |
| class ContinueTest { | |
| static testMain() { | |
| int i; | |
| int forCounter = 0; | |
| for (i = 0; i < 10; i++) { | |
| if (i > 3) continue; | |
| forCounter++; | |
| } | |
| Expect.equals(4, forCounter); | |
| Expect.equals(10, i); | |
| i = 0; | |
| int doWhileCounter = 0; | |
| do { | |
| i++; | |
| if (i > 3) continue; | |
| doWhileCounter++; | |
| } while (i < 10); | |
| Expect.equals(3, doWhileCounter); | |
| Expect.equals(10, i); | |
| i = 0; | |
| int whileCounter = 0; | |
| while (i < 10) { | |
| i++; | |
| if (i > 3) continue; | |
| whileCounter++; | |
| } | |
| Expect.equals(3, whileCounter); | |
| Expect.equals(10, i); | |
| // Use a label to continue to the outer loop. | |
| i = 0; | |
| L: | |
| while (i < 50) { | |
| i += 3; | |
| while (i < 30) { | |
| i += 2; | |
| if (i < 10) { | |
| continue L; | |
| } else { | |
| i++; | |
| break; | |
| } | |
| } | |
| break; | |
| } | |
| Expect.equals(11, i); | |
| // continue without label inside switch continues to innermost loop. | |
| do { | |
| i = 20; | |
| switch (0) { | |
| case 0: | |
| i = 22; | |
| continue; | |
| default: | |
| i = 25; | |
| break; | |
| } | |
| i = 30; | |
| } while (false); | |
| Expect.equals(22, i); | |
| } | |
| } | |
| main() { | |
| ContinueTest.testMain(); | |
| } |