"Cannot fall through" 开关错误

"Cannot fall through" Switch Error

} else {
    int indexGenerator = numberGenerator.Next(1, 4);
    int answer1 = finalUserInput - theCorrectAnswer;
    switch (indexGenerator) {
        case 1:
            Console.WriteLine("You are off by" + answer1);
        case 2:
            Console.WriteLine("So close. Maybe if you add or subtract " + answer1 + "?");

当我尝试让开关工作时,弹出一条错误消息,指出控制案例无法从案例 1 掉落到另一个。

您需要在 switch 语句的每个 case 末尾添加 break;

switch (indexGenerator) {
  case 1:
      Console.WriteLine("You are off by" + answer1);
      break; 
  case 2:
      Console.WriteLine("So close. Maybe if you add or subtract " + answer1 + "?");
      break;
}

这里的问题是您忘记将 break; 添加到您的代码中。您的代码应如下所示。

switch (indexGenerator){
                case 1:
                    Console.WriteLine("You are off by" + answer1);
                break;
                case 2:
                    Console.WriteLine("So close. Maybe if you add or subtract " + answer1 + "?");
                break;
}

使用 break 的目的基本上是告诉您的程序您正在脱离语句的 case: 部分。

您需要在 case 1 块的末尾添加一个 break

}
else
{
    int indexGenerator = numberGenerator.Next(1, 4);
    int answer1 = finalUserInput - theCorrectAnswer;
    switch (indexGenerator)
    {
        case 1:
            Console.WriteLine("You are off by" + answer1);
            break; // missing break
        case 2:
            Console.WriteLine("So close. Maybe if you add or subtract " + answer1 + "?");
            break; // missing break

如我所示,在 case 2 块的末尾添加一个。