Цикл while без счетчика в Dart
В цикле while условие может проверять не счетчик,
а результат вычисления. Цикл идет, пока это выражение остается
истинным.
Обычное деление / дает double, поэтому такое число
заводят с дробной точкой. Целое деление записывают оператором
~/.
Давайте теперь будем делить 500 на 2 столько раз,
пока результат не станет меньше 10:
var val = 500.0;
while (val > 10) {
val /= 2;
}
print(val); // выведет 7.8125
Пусть деление целое. Тот же старт с оператором ~/ оставит
только целую часть:
var whole = 500;
while (whole > 10) {
whole = whole ~/ 2;
}
print(whole); // выведет 7
Пусть стартовое число уже дробное. Будем делить 10.5 на
2, пока оно больше 1:
var val = 10.5;
while (val > 1) {
val /= 2;
}
print(val); // выведет 0.65625
Делите число 100 на 3, пока результат не станет
меньше 20.
Пусть есть число 1. Умножайте его на 2.5, пока
результат не станет больше 20.
Дано число val с начальным значением 2. Умножайте
его на 3 столько раз, пока результат умножения не станет
больше 1000. Какое число получится? Посчитайте количество
итераций, необходимых для этого.