char order = (char)Console.Read(); // 輸入 'e' + Enter
switch (order) { ... default: goto Order; }
輸入 'e' 後按 Enter,控制台連續打印三次「請重新輸入指令」才等待下一次輸入。
Console.Read() 每次讀取一個字符(含換行符)。輸入流實為 'e'、'\r'、'\n' 三字符。第一次讀 'e' 進 default → goto;第二次讀 '\r' 進 default → goto;第三次讀 '\n' 進 default → goto;緩衝區空,第四次阻塞等待新輸入。
// 方案 1:ReadLine 讀整行再取首字符
string line = Console.ReadLine();
if (line.Length > 0) order = char.ToLower(line[0]);
// 方案 2:ReadKey 直接獲取按鍵(不回顯需攔截)
var key = Console.ReadKey(true);
order = char.ToLower(key.KeyChar);
// 方案 3:循環跳過空白字符
int ch;
while ((ch = Console.Read()) != -1 && char.IsWhiteSpace((char)ch)) ;
if (ch != -1) order = (char)ch;
交互式控制台菜單優先使用 Console.ReadLine() 配合 Trim()/ToLower(),簡單健壯。