diff --git a/smart contract b/smart contract new file mode 100644 index 00000000000..9dc5603aa8e --- /dev/null +++ b/smart contract @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.17; + +contract ControlStructures { + error AfterHours(uint256 time); + error AtLunch(); + + function fizzBuzz(uint256 _number) public pure returns (string memory response) { + if (_number % 3 == 0 && _number % 5 == 0) { + return "FizzBuzz"; + } else if (_number % 3 == 0) { + return "Fizz"; + } else if (_number % 5 == 0) { + return "Buzz"; + } else { + return "Splat"; + } + } + + function doNotDisturb(uint256 _time) public pure returns (string memory result) { + assert(_time < 2400); + + if (_time > 2200 || _time < 800) { + revert AfterHours(_time); + } else if (_time >= 1200 && _time <= 1299) { + revert("At lunch!"); + } else if (_time >= 800 && _time <= 1199) { + return "Morning!"; + } else if (_time >= 1300 && _time <= 1799) { + return "Afternoon!"; + } else if (_time >= 1800 && _time <= 2200) { + return "Evening!"; + } + } +}