Циклы while
Часть раздела Основы путешествия по Solidity на Coddy. Урок 32 из 53.
Цикл while проверяет условие и повторяет своё тело, пока это условие истинно. Вы управляете обновлением внутри тела. Убедитесь, что цикл изменяет что-то, что в конечном итоге может сделать его условие ложным.
Операторы в этом фрагменте выполняются внутри предоставленной функции main.
uint256 remaining = 3;
while (remaining > 0) {
console.log(remaining);
remaining--;
}Счётчик выводится до того, как его значение уменьшается. Когда он достигает нуля, следующая проверка условия останавливает цикл, поэтому беззнаковое вычитание никогда не выполняется при нулевом значении. Отсутствие декремента оставило бы условие истинным навсегда.
Циклу while нужен путь, который в конечном итоге сделает его условие ложным.
Задание
ЛегкоНачиная с n, выведите обратный отсчёт до 1 с помощью while, затем выведите stop. n находится в диапазоне от 0 до 7.
Тесты передают аргументы в main в следующем порядке: uint256 n. Каждый тест начинается с нового состояния контракта.
Используйте console.log для требуемого вывода. Выводите только требуемые значения, по одному в строке, без дополнительных меток, если только задание явно их не предусматривает.
Попробуйте сами
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 n) external view {
// Напишите своё решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисленияПотренируйтесь самостоятельно: Песочница Solidity