You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#猜数字游戏switch语句报错:无法将bool隐式转换为int

问题解决:C#猜数字游戏switch语句报错

错误原因

你写的switch语句使用了</>这类比较表达式,这不符合C#传统switch的语法规则:传统switch的case后面必须是与switch变量同类型的常量值,而respond > num会返回bool类型结果,和switch的int类型变量respond类型不匹配,因此触发Cannot implicitly convert type 'bool' to 'int'错误。

解决方法

针对你的场景,有两种更合适的实现方式:

方法1:使用C# 7+支持的模式匹配switch

从C# 7开始,switch支持基于表达式的模式匹配,可改写为:

switch (respond)
{
    case var r when r > num:
        Console.WriteLine("猜高了!");
        break;
    case var r when r < num:
        Console.WriteLine("猜低了!");
        break;
    case var r when r == num:
        Console.WriteLine("You won !");
        break;
}

或者借助CompareTo方法简化:

switch (respond.CompareTo(num))
{
    case 1:
        Console.WriteLine("猜高了!");
        break;
    case -1:
        Console.WriteLine("猜低了!");
        break;
    case 0:
        Console.WriteLine("You won !");
        break;
}

方法2:用if-else分支替代switch(更直观)

对于这种简单的多分支比较场景,if-else是更易读的选择,完全规避switch的语法限制:

if (respond > num)
{
    Console.WriteLine("猜高了!");
}
else if (respond < num)
{
    Console.WriteLine("猜低了!");
}
else
{
    Console.WriteLine("You won !");
}

完整修正后的代码

你的代码还有几处其他问题需要修复:

  • 多余的using System.Diagnostics.Tracing;可删除
  • tries变量未定义,需添加计数逻辑
  • 当前仅允许用户猜一次,需用循环实现多次猜测
  • 未处理用户输入非数字的异常情况(可选优化)

以下是完整可运行版本:

using System;

Random random = new Random();
int num = random.Next(1, 101); // 生成1-100的随机数,匹配提示的范围
int tries = 0;

Console.WriteLine("This is a number guessing game between 1 - 100 ! ");

while (true)
{
    Console.WriteLine("Enter your guess : ");
    // 处理非数字输入
    if (!int.TryParse(Console.ReadLine(), out int respond))
    {
        Console.WriteLine("请输入有效的整数!");
        continue;
    }
    tries++;

    if (respond > num)
    {
        Console.WriteLine("猜高了!");
    }
    else if (respond < num)
    {
        Console.WriteLine("猜低了!");
    }
    else
    {
        Console.WriteLine("You won !");
        Console.WriteLine("It took you " + tries + " tries");
        break; // 猜对后退出循环
    }
}

Console.ReadKey();

内容的提问来源于stack exchange,提问作者Indective

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:32:26