这是我正在创建的类的函数成员,它不会导致任何语法错误,只会导致语义错误。它应该生成的随机数为 0。
int Warrior::attack()
{
int hit = 0;
switch (weapon)
{
case 6:
hit = rand() % (5 - 1 + 1) + 1;
break;
case 7:
hit = rand() % (10 - 4 + 1) + 4;
break;
case 8:
hit = rand() % (15 - 9 + 1) + 9;
break;
case 9:
hit = rand() % (20 - 14 + 1) + 14;
break;
case 10:
hit = rand() % (25 - 19 + 1) + 19;
break;
}
std::cout<< "You hit " << hit <<"!\n";
return hit;
}
请帮忙! 谢谢你, ~武士刀
最佳答案
这可能是缺少 default
switch 语句,即 weapon
不触发任何 switch
子句。
尝试:
switch (weapon)
{
case 6:
hit = rand() % (5 - 1 + 1) + 1;
break;
case 7:
hit = rand() % (10 - 4 + 1) + 4;
break;
case 8:
hit = rand() % (15 - 9 + 1) + 9;
break;
case 9:
hit = rand() % (20 - 14 + 1) + 14;
break;
case 10:
hit = rand() % (25 - 19 + 1) + 19;
break;
default:
throw std::exception("switch statement failed");
}
关于c++ - 为什么我的 rand() 数字显示为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555453/