因此,基本上我正在尝试将其转换为某种形式的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;
}

10-08 06:41