C#中char和int的区别

时间:2015-02-05 20:52:32

标签: c# char int

创建一个C#程序,提示用户从问题的答案选项列表中选择正确的答案,如果答案是错的,那么尝试使用do while循环再次提示相同的问题,但它不能正常工作应该是。

class Program
{
    static void Main(string[] args)
    {
       char UserChoice = ' ';
       do
       {
               Console.WriteLine("What is the command keyword to exit a loop in C#?");
               Console.WriteLine("a.quit");
               Console.WriteLine("b.continue");
               Console.WriteLine("c.break");
               Console.WriteLine("d.exit");
               UserChoice = ' ';
               Console.WriteLine("Please enter a b c or d");
               UserChoice = (char)Console.Read();
               switch (UserChoice)
               {
                   case 'a': Console.WriteLine("wrong ans"); break;
                   case 'b': Console.WriteLine("wrong ans"); break;
                   case 'd': Console.WriteLine("wrong ans"); break;
                   case 'c': Console.WriteLine("right"); break;
                   default: Console.WriteLine("Bad choice {0}", UserChoice); break;
               }
       } while (UserChoice == 'a' || UserChoice == 'b' || UserChoice == 'd');
    }
}

但是如果我在这个程序中使用int而不是char并用1,2,3和4替换a,b,c和d那么这个程序工作正常。请一些人在使用char时解释这段代码有什么问题。

1 个答案:

答案 0 :(得分:0)

如果您想阅读单个字符,则应使用Console.ReadKey

Console.Read等待来自控制台的输入,这意味着在大多数shell中读取整行,然后将该输入的第一个字符的ASCII值作为int

如果您只是使用ReadKey,则可以获得代表下一个字符的实际char,并且不必担心如何将您获得的内容转换为{{1} }。