dart-sdk/tests/language/loop/continue_test.dart
Robert Nystrom 3218ba8412 Migrate language_2/loop to NNBD.
Change-Id: Id8fee2221036b8dca12675ba3e4fc1c0ab7a09b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149393
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2020-05-29 23:48:57 +00:00

77 lines
1.5 KiB
Dart

// 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();
}