【发布时间】:2019-07-03 22:10:04
【问题描述】:
else 语句不起作用,当控制台的输入不是 Rock、Paper 或 Scissors 时,不会显示异常消息。这是什么原因。
using System;
namespace Rock__Paper__Scissors_
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Lets play a game of Rock, Paper, Scissors.");
Console.Write("Enter Rock, Paper or Scissors:");
string userChoice = Console.ReadLine();
Random r = new Random();
int computerChoice = r.Next(3);
//0 = Scissors
if (computerChoice == 0)
{
if (userChoice == "Scissors")
{
Console.WriteLine("Computer chose scissors!");
Console.WriteLine("TIE!");
}
else if (userChoice == "Rock")
{
Console.WriteLine("Computer chose Scissors!");
Console.WriteLine("You WIN!");
}
else if (userChoice == "Paper")
{
Console.WriteLine("Computer chose Scissors");
Console.WriteLine("You LOSE!");
}
}
//1 = Rock
else if (computerChoice == 1)
{
if (userChoice == "Scissors")
{
Console.WriteLine("Computer chose Rock!");
Console.WriteLine("You LOSE!");
}
else if (userChoice == "Rock")
{
Console.WriteLine("Computer chose Rock!");
Console.WriteLine("TIE!");
}
else if (userChoice == "Paper")
{
Console.WriteLine("Computer chose Rock");
Console.WriteLine("You WIN!");
}
}
//2 = Paper
else if (computerChoice == 2)
{
if (userChoice == "Scissors")
{
Console.WriteLine("Computer chose Paper!");
Console.WriteLine("You WIN");
}
else if (userChoice == "Rock")
{
Console.WriteLine("Computer chose Paper!");
Console.WriteLine("You LOSE!");
}
else if (userChoice == "Paper")
{
Console.WriteLine("Computer chose Paper");
Console.WriteLine("TIE!");
}
}
//3 = Exception Handling
else
{
Console.WriteLine("You must enter Rock, Paper or Scissors");
}
}
}
}
【问题讨论】:
-
你试过调试吗?尝试使用调试器单步执行代码。您所指的“其他”,应该说“
You must enter Rock, Paper or Scissors”的那个只有当computerChoice不是0、1、2之一时才会显示。它不依赖于用户输入(Rock、Paper、Scissors)。 -
你在电脑的选择上有'else'
-
啊,好吧,这是有道理的。我会尝试一些不同的东西。谢谢。
-
是的...
else永远不会成功,因为computerChoice总是介于 0 和 2 之间 -
你真的应该扩展“else statement doesn't work”评论
标签: c# if-statement exception