条件语句
上一节
下一节
Solidity支持条件语句,让程序可以根据条件执行不同的操作。条件语句包括:
ifif...elseif...else if
例子:
function eatBLT(string sandwich) public {
// 看清楚了,当我们比较字符串的时候,需要比较他们的 keccak256 哈希码
if (keccak256(sandwich) == keccak256("BLT")) {
eat();
}
}实战练习
在前面的关卡中我们的功能逻辑主体已经完成。神兽的生成是在新的宠物添加一些特殊的小猫代码。
我们可以规定神兽的生成是把新生成的宠物最后的DNA最后两个数字设定为99。
首先,我们修改下
mateAndMultiply函数的定义,给它传入第三个参数:一条名为_species的字符串string类型。接下来,在我们计算出新的区块宠物的DNA之后,添加一个
if语句来比较_species的keccak256哈希值和字符串"kitty"的keccak256哈希值是否相等。在 if 语句中,我们用 99 替换新区块宠物DNA的最后两位数字。可以这么做:newDna = newDna - newDna % 100 + 99;。
解释:假设 newDna 是 334455。那么 newDna % 100 是 55,所以 newDna - newDna % 100 得到 334400。最后加上 99 可得到 334499。
最后,我们修改了 mateOnKitty 中的函数调用。当它调用 mateAndMultiply 时,增加 “kitty” 作为最后一个参数。


