Почему в условии не банится ноль?
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'ах не нужна.
