Почему в условии не банится ноль?

введите сюда описание изображения

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace game
{
    class Program
    {
        static void Main(string[] args)
        {
            string user1, user2, winner;
            Console.Write("Введите ник 1 игрока - ");
            user1 = Console.ReadLine();
            Console.Write("Введите ник 2 игрока - ");
            user2 = Console.ReadLine();
            Console.WriteLine("Можно вводить числа от 1 до 4");
            Random rand = new Random();
            int number = rand.Next(12, 40);
            int move;
            winner = "пососал";
            while (number>0)
            {
                Console.WriteLine($"Число: {number}");
                Console.WriteLine($"Ход: {user1}");

                    move = int.Parse(Console.ReadLine());
                if (move > 0 && move < 5 && move != 0)
                    {
                        number = number-move;
                    }
                    else
                    {
                        while (move < 0 || move > 4)
                        {
                            Console.WriteLine("Неверный диапазон чисел (1,2,3 и 4)");
                            move = int.Parse(Console.ReadLine());
                        }
                        number = number - move;
                    }
                    if (number==0)
                    {
                        winner = user1;
                    }

                Console.WriteLine($"Число: {number}");
                Console.WriteLine($"Ход: {user2}");
                move = int.Parse(Console.ReadLine());
                if (move > 0 && move < 5 && move != 0)
                {
                    number = number - move;
                }
                else
                {
                    while (move < 0 || move > 4)
                    {
                        Console.WriteLine("Неверный диапазон чисел (1,2,3 и 4)");
                        move = int.Parse(Console.ReadLine());
                    }
                    number = number - move;
                }
                if (number == 0)
                {
                    winner = user2;
                }
            }
            Console.WriteLine($"Победил {winner}" );

            Console.ReadLine();
        }
    }
}

Ответы (1 шт):

Автор решения: EOF

У Вас в циклах while условие move < 0 || move > 4. При move == 0 результатом условия будет false и цикл обработки ошибок завершится. Измените условие на move < 1 || move > 4. Также проверка move != 0 в if'ах не нужна.

→ Ссылка