class Program
{
static void Main(string[] args)
{
Console.Title = "Console.Read方法应用示例";
string str = "";
char ch = '1';
Console.Write("请输入一个字符串(Enter=完成,X=退出):");
while(true)
{
ch = (char)Console.Read();
str += ch;
if(ch == 'x' || ch == 'X')return;
//else
//break; 把下面的if注释掉,用上面两条已注释的。只会输出输入的头一个字符。
if (ch == '\n') break; 按这条,输入的内容会全部输出。
}
Console.WriteLine("您输入的字符串是:{0}",str);
Console.ReadKey();
}
str += ch; 的赋值操作同样在先一步已完成。为什么结果会是两样的。求解!
你的
if (ch =='z' || ch=='Z') return; else break;这个语句貌似无论输入什么都是退出 那个ch读取到第一个值 程序就结束了 str自然也值等于第一个值。所以输出的只有一位数
而如果是下面那个if的话 只要你输入的不是r或\n while循环就为true 循环继续 str就能累加了 输出的就是你输入的所有的字符
请重新学习while循环。楼主。
if(ch == 'x' || ch == 'X') return; else break; 这不是很明显么,这个IF语句的意思是如果输入了x或者X就退出,否则也退出,所以,就只有第一个字符啊
而后面那个 if (ch == '\n') break; 是说,只有当你的输入是回车的时候才退出循环。
请重新学习while循环。