Почему цикл выполняется три раза вместо одного - C#
Формулировка задачи:
Программа выводит конструкцию циклов в языке C#. Задача сделать так , чтоб меню опроса выползало пока не будет введен нужный символ. Вроде сделал всё правильно, но почему то это меню у меня выводит 3 раза вместо одного.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace project_3
{
class Program
{
static void Main()
{
char choice = '0';
while (choice<'1'|choice>'5')
{
Console.WriteLine("Выберете последовательность операторов");
Console.WriteLine("1.if-else");
Console.WriteLine("2.switch-case");
Console.WriteLine("3.while");
Console.WriteLine("4.do-while");
Console.WriteLine("5.for");
choice = (char)Console.Read();
}
switch (choice)
{
case '1':
Console.Write("if(условие)\n{\nдействие;\n}\nelse\n{\nдействие\n}");
break;
case '2':
Console.Write("switch(выражение)\n{\ncase константа 1;\nпоследовательность операторов\nbreak;\ncase константа 2;\nпоследовательность операторов\nbreak;\ncase константа n;\nпоследовательность операторов\nbreak;\ndefault;\nпоследовательность операторов\nbreak;\n}");
break;
case '3':
Console.Write("while (условие) оператор;");
break;
case '4':
Console.Write("do {\nоператоры;\n} while (условие);");
break;
case '5':
Console.Write("for(инициализация переменной; условие; шаг)\n{\nблок операторов;\n{");
break;
default:
Console.Write("Выбери ответ из списка\n");
break;
}
Console.ReadKey();
}
}
}Решение задачи: «Почему цикл выполняется три раза вместо одного»
textual
Листинг программы
choice = Console.ReadKey().KeyChar;