因为Console.Read();只能读取一个字符,所以当前输入一个字符时,
c=(char)Console.Read();后的代码就开始执行了。第二个Console.ReadLine()实际上是运行了的,所以name值会是你说的那种情况

解决方案 »

  1.   

    如果我只输入一个字符的话,程序显示完if...else块里的内容就结束了
    我应该怎么改?
      

  2.   

    如果改成如下,就正常了:
    -------------------------
    char c;
    string name;
    string tmp;Console.Write("Enter a character:");//-------------------------
    //读取整行
    tmp=Console.ReadLine();
    //取第一个字符
    c=Convert.ToChar(tmp.Substring(0,1));
    //----------------------------if(char.IsLetter(c))
    {
    if(char.IsLetter(c))
    Console.WriteLine("The character is lowercase.");
    else
    Console.WriteLine("The character is uppercase."); 
    }
    else
    Console.WriteLine("The character is not an alphabetic character."); //此处不显示
    name=Console.ReadLine();
    Console.WriteLine("hello,{0}",name);
      

  3.   

    也可这样:
    -----------------------------------char c;
    string name;Console.Write("Enter a character:");
    c=(char)Console.Read();if(char.IsLetter(c))
    {
    if(char.IsLetter(c))
    Console.WriteLine("The character is lowercase.");
    else
    Console.WriteLine("The character is uppercase."); 
    }
    else
    Console.WriteLine("The character is not an alphabetic character."); 
    //加上此句----------
    Console.WriteLine("please enter you name:");
    //-----------------
    name=Console.ReadLine();
    Console.WriteLine("hello,{0}",name);
      

  4.   

    好的,多谢了:)感觉这个Console.Read()挺别扭