solidity的控制结构有if, else, while, do, for, break, continue, return。这些关键字在C语言和JavaScript中表达式相同, 学好这三板斧所有的逻辑结构都好实现。
1. if-else
function test(uint256 _number) public pure returns(bool){
if(_number == 0){
return(true);
}else{
return(false);
}
}
2. for循环
function test() public pure returns(uint256){
uint sum = 0;
for(uint i = 0; i < 100; i++){
sum += i;
if(sum > 50){
break;
}
}
return(sum);
}
3. do-while循环
function test() public pure returns(uint256){
uint sum = 0;
uint i = 0;
do{
if(sum < 10){
continue;
}
sum += i;
i++;
}while(i < 100);
return(sum);
}
4. 用solidity
实现插入排序
// 插入排序
function insertionSort(uint[] memory a) public pure returns(uint[] memory) {
// note that uint can not take negative value
for (uint i = 1;i < a.length;i++){
uint temp = a[i];
uint j=i;
while( (j >= 1) && (temp < a[j-1])){
a[j] = a[j-1];
j--;
}
a[j] = temp;
}
return(a);
}