因此,基本上我正在尝试将其转换为某种形式的switch语句。我不太确定该怎么做。我有一些想法,例如使用具有一定范围值的关键字来创建枚举(例如,“枚举野兔{一个=(从1-5的范围)到两个=(从6-8的范围)}}-但是我不知道是一个错误:S
希望我已经清楚我想问什么。
int y = 1 + rand() % 10;
// determine which move to make
if ( y == 1 || y == 2 ) {
hare += 0;
} else if ( y == 3 || y == 4 ) {
hare += 9;
} else if (y == 5) {
hare -= 12;
} else if (y >= 6 && y <= 8){
hare += 1;
} else if (y == 9 || y == 10){
hare -= 2;
}else {
++( hare );
}
if ( hare < 1 ) {
hare = 1;
} else if ( hare > RACE_END ) {
hare = RACE_END;
}
最佳答案
第一个问题是进行转换是否具有真正的值(value)。那么对于这种情况,操作实际上很简单,因为在所有情况下,除了else
之外,都有少量有效情况:
switch (y) {
case 1: case 2:
break;
case 3: case 4:
hare += 9;
break;
case 5:
hare -= 12;
break;
case 6: case 7: case 8:
hare += 1;
break;
case 9: case 10:
hare -= 2;
break;
default:
++hare;
}