blob: 48ff50d56d495a74dd8bbc32a2c14b442b1b6e3a [file] [log] [blame]
/*
* 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.
*/
/**
* @assertion Execution of a while statement of the form while (e) s; proceeds
* as follows:
* The expression e is evaluated to an object o. Then, o is subjected to
* boolean conversion, producing an object r. If r is true, then the statement
* {s} is executed and then the while statement is re-executed recursively.
* If r is false, execution of the while statement is complete.
* @description Checks that the number of iterations is correct for various
* valid expressions.
* @author vasya
*/
import '../../../Utils/expect.dart';
main() {
var count = 0;
while (false) {
++count;
}
Expect.equals(0, count);
count = 0;
while (true) {
++count;
if (count == 7)
break;
}
Expect.equals(7, count);
count = 0;
while (count < 2) {
++count;
}
Expect.equals(2, count);
count = 0;
var it = [0,1].iterator;
while (it.moveNext()) {
// it.current;
++count;
}
Expect.equals(2, count);
count = 0;
while (++count < 3) { }
Expect.equals(3, count);
}