Добрый день. Я тут сделал такое условие что цикл будет выполнятся до тех пор пока пользователь != введет Нет или нет -тут я делаю регистр важным чтобы условие сработала если пользователь введет один из этих строк
вот код который я написал, по моему всё логично:
while (Console.ReadLine() !="stop" || Console.ReadLine() !="Stop")
перевожу: while крутится до тех пор пока пользователь не введет stop или Stop,но он что то не реагирует на Stop и на stop,в данном случае, но почему?

while (Console.ReadLine() !="stop" || Console.ReadLine() !="Stop")
Тут имеется ввиду пользователю нужно 2 раза ввести Console.ReadLine() 2 раза же. То есть 2 строки, первую проверяем на наличие stop, а вторую строку после \n проверяем на наличие Stop. Это что то не то. И замечание Imobilazer верно. Нужно тогда так
while (Console.ReadLine() !="stop" && Console.ReadLine() !="Stop")
Но так не надо делать.
Делай как ниже написано.
Если нужно именно while использовать, то пишется так
while(true)
{ ...}
using System;
using System.Text.RegularExpressions;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
for(; ; )
{
Console.WriteLine("Введите строку");
string s = Console.ReadLine();
if (s == "Stop" || s == "stop")
{
Console.WriteLine("Цикл остановлен");
break;
}
Console.WriteLine("Это вывод");
}
Console.ReadKey();
}
}
}
Оператор ИЛИ
Срабатывает одна из проверок
Когда вводишь stop, срабатывает истина что не равно Stop и наоборот
нужно использовать &&
Посмотри внимательно на условие. Очевидно, что введённая строка не может быть равна "stop" и "Stop" одновременно - так что одно из неравенств будет истинно в любом случае. А так как между ними оператор ИЛИ - то и всё выражение будет всегда возвращать true. Тебе нужно было использовать оператор И (&&).
А вообще следовало бы просто приводить строку к определённому регистру (для этого есть методы ToLower и ToUpper), что позволит определять любые варианты слова stop (STOP, StOp, sToP и т. д.):
while (Console.ReadLine().ToLower() != "stop") ...
или
while (Console.ReadLine().ToUpper() != "STOP") ...
В том то и дело, что у вас бесконечный цикл и нет проверки на НЕТ и СТОП. Поэтому он и работает вечно. Тут нужно использовать ПОТОКИ.
Спасибо!