반응형
💡솔리디티 기본 문법 - 반복문 (loop)
반복문은 특정한 작업을 계속해서 수행해야 할 때 사용한다.
✓ while문
while 문은 가장 기본적인 반복문이다. 조건식이 참일 때 중괄호 안의 코드를 반복적으로 시행하고, 조건식이 거짓이 되면 박복문을 종료한다.
while (조건식){
조건식이 참이면 여기있는 코드 수행
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;
import "./UIntFuncstions.sol";
contract WhileLoop {
uint[] data;
uint8 j = 0;
function loop() public returns (uint[] memory) {
while (j<5) {
j++;
data.push(j);
}
return dta;
}
}
✓ do-while문
do-while문은 while 문과 매우 유사하다. 하지만 반복문의 끝에 조건식 검사가 있기 때문에, 조건식이 거짓인 경우에도 적어도 한 번은 무조건 실행한다는 특징이 있다.
do
{
// 최초 한번은 무조건 실행, 이후부터는 조건식이 참이면 여기있는 코드 실행
} while (조건식)
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;
import "./UIntFuncstions.sol";
contract DoWhileLoop {
uint[] data;
uint8 j = 0 ;
function loop () public returns(uint[] memory){
do{
j++;
data.push(j);
}while(j<0);
return data;
}
}
✓ for 문
for 문은 가장 간결한 반복문이라고 할 수 있다.
for (초기값; 조건식; 증감식){
조건식이 참이면 여기있는 코드 수행
}
for 문의 구조는 위와 같다.
초기값: 반복 횟수를 셀 변수를 초기화하는 부분
조건식: 참인 경우에 반복 수행
증감식: 초기값을 담은 변수를 변화시킴. 매 반복시 한번씩 실행
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;
contract ForLoop {
uint[] data;
function loop() public returns(uint[] memory){
for(uint i=0; i<5; i++){
data.push(i);
}
return data;
}
}
✓ continue
continue는 반복문 실행 도중 나머지 코드를 건너뛰고 싶을 때 사용한다. while, do-while, for 문 안에 사용할 수 있다.
while(조건식){
조건식이 참이면 여기있는 코드 수행
<새로운 조건 추가>{
continue;
조건에 만족하면 아래 코드를 실행하지 않고 건너 뛴다.
}
카운터 값 증가!
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;
contract ContinueLoop {
uint[] data;
uint8 j = 0;
function loop() public returns(uint[] memory){
while(j<=100){
j++;
if(j%2 != 0){
continue;
}
data.push(j);
}
return data;
}
}
✓ break
break 는 중간에 반복문을 멈추고 바깥으로 나가고 싶을 때 사용한다. while, do-while, for 문 안에 사용할 수 있다.
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.14;
contract BreakLoop{
uint[] data;
uint8 j = 0;
function loop() public returns(uint[] memory){
while(j <= 100){
j++;
if(j == 5){
break; // j가 5 되었을 때 while 반복문을 빠져나감
}
data.push(j);
}
return data;
}
}
반응형
'블록체인 > WEB3 개발' 카테고리의 다른 글
이더리움 개발 환경 구성하기 - Remix, 스마트 컨트랙트 코드 작성해서 컴파일해보고 배포까지 해보자! (0) | 2022.07.12 |
---|---|
솔리디티 컴파일러(solc) 설치하고 컴파일해보기 (0) | 2022.07.12 |
솔리디티 기본 문법 - 조건문 (0) | 2022.07.11 |
솔리디티 기본 문법 - 상속 및 라이브러리 (0) | 2022.07.08 |
솔리디티 기본 문법 - 이벤트 및 에러 핸들링 (0) | 2022.07.08 |
댓글