我正在创建一个"选择你自己的冒险游戏",我正在尝试使用将用户输入更改为大写。ToUpper((;但无论出于何种原因,如果输入尚未封顶,它都会跳过else-if语句,进入游戏的下一步。以下是我的代码当前的外观。
Console.WriteLine("It begins on a cold rainy night. Your sitting in your room and hear a noise coming from down the hall. Do you go investigate?");
//First decision
Console.Write("Type YES or NO: ");
string noiseChoice = Console.ReadLine();
string capNoise = noiseChoice.ToUpper();
//First decision outcome
if (noiseChoice == "NO")
{
Console.WriteLine("Not much of an adventure if you don't leave your room!");
Console.WriteLine("THE END.");
}
else if (noiseChoice == "YES")
{
Console.WriteLine("You walk into the hallway and see a light coming from under a door down the hall.");
Console.WriteLine("You walk towards it. Do you open it or knock?");
}
//Second decision
Console.Write("Type OPEN or KNOCK: ");
string doorChoice = Console.ReadLine();
string capDoor = doorChoice.ToUpper();
当系统提示键入YES或NO时,如果您输入是或否,它将跳到下一个控制台。Write((;类型为OPEN或KNOCK。但是,如果输入是YES或NO,则根据需要继续执行else-if语句。我是C#的新手,所以我们非常感谢您的帮助!
您检查的变量错误。
在这里,您使用ToUpper()
转换文本,并将大写文本放入capNoise
变量中
string capNoise = noiseChoice.ToUpper();
但是你需要检查大写文本的capNoise,但你要检查的是noiseChoice,它是你的原始输入。
if (noiseChoice == "NO")
因此,您需要将ToUpper((结果存储在noiseChoise中。
noiseChoice= noiseChoice.ToUpper();
或检查capNoise
if (capNoise == "NO")