blob: 2e434e4d94bef167195046883d82d4d44fb69623 [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);
}