我对 C# 很陌生,我正在尝试制作一个简单的猜数字游戏,基本上用户输入他们的猜测,如果猜测高于数字,系统将显示它更高或更低。
这是代码:
using System.Diagnostics.Tracing;
Random random = new Random();
int num = random.Next(0,101);
Console.WriteLine("This is a number guessing game between 1 - 100 ! ");
Console.WriteLine("Enter your guess : ");
int respond = Convert.ToInt32(Console.ReadLine());
switch (respond) {
case respond > num: Console.WriteLine("");
break;
case respond < num: Console.WriteLine("");
break;
case respond == num : Console.WriteLine("You won !");
break;
}
Console.WriteLine("You won !");
Console.WriteLine("It took you " + tries + " tries");
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
问题出在这部分,即开关:
switch (respond) {
case respond > num: Console.WriteLine("");
break;
case respond < num: Console.WriteLine("");
break;
case respond == num : Console.WriteLine("You won !");
break;
}
Run Code Online (Sandbox Code Playgroud)
当尝试比较“respond”和“num”时,我总是收到错误,特别是此错误:
无法将类型“bool”隐式转换为“int”
有谁知道如何修理它?
我尝试更改位置和变量响应,与“num”相同,似乎没有任何效果。
小智 5
您遇到的错误是因为您尝试将 switch 语句与计算结果为布尔值 ( respond > num, respond < num) 的条件一起使用,但 switch 语句需要常量整数表达式。
在这种情况下,您应该使用if else语句来比较这些值。喜欢:
using System;
Random random = new Random();
int num = random.Next(0, 101);
Console.WriteLine("This is a number guessing game between 1 - 100!");
Console.WriteLine("Enter your guess: ");
int respond = Convert.ToInt32(Console.ReadLine());
if (respond > num)
{
Console.WriteLine("");
}
else if (respond < num)
{
Console.WriteLine("");
}
else
{
Console.WriteLine("You won!");
}
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |