string? readResult;
int numValue;
Console.Write("Enter an integer value between 5 and 10: ");
do
{
readResult = Console.ReadLine();
bool validNumber = false;
validNumber = int.TryParse(readResult, out numValue);
if(validNumber == true)
{
if(numValue <5 || numValue > 10)
Console.Write ($"You entered {numValue}. Please enter a number between 5 and 10: ");
}
else Console.Write("Sorry, you entered an invalid number, please try again: ");
}while (numValue < 5 || numValue > 10 );
Console.WriteLine($"Your input value ({numValue}) has been accepted.");
validNumber = int.TryParse(readResult, out numValue);
после чего и думать ;)namespace ConsoleApp4
{
internal class Program
{
static void Main(string[] args)
{
string? readResult;
int numValue;
Console.Write("Enter an integer value between 5 and 10: ");
do
{
readResult = Console.ReadLine();
bool validNumber = false;
validNumber = int.TryParse(readResult, out numValue);
#if DEBUG
Console.WriteLine($"debug 'numValue='{numValue}");
Console.WriteLine($"debug 'validNumber='{validNumber}");
#endif
if (validNumber == true)
{
if (numValue < 5 || numValue > 10)
Console.Write($"You entered {numValue}. Please enter a number between 5 and 10: ");
}
else Console.Write("Sorry, you entered an invalid number, please try again: ");
} while (numValue < 5 || numValue > 10);
Console.WriteLine($"Your input value ({numValue}) has been accepted.");
}
}
}
namespace ConsoleApp4
{
internal static class Program
{
static void Main(string[] args)
{
var numValue = 0;
var inValidValue = false;
var validNumber = false;
"Enter an integer value between 5 and 10:".print();
do
{
validNumber = int.TryParse(Console.ReadLine(), out numValue);
inValidValue = numValue < 5 || numValue > 10;
#if DEBUG
$".. debug 'numValue={numValue}'".print();
$".. debug 'validNumber={validNumber}'".print();
$".. debug 'validValue={inValidValue}'".print();
#endif
if (validNumber)
{
if (inValidValue)
$"You entered {numValue}. Please enter a number between 5 and 10: ".print();
}
else "Sorry, you entered an invalid number, please try again: ".print();
} while (inValidValue);
$"Your input value ({numValue}) has been accepted.".print();
}
static void print(this string s) => Console.WriteLine(s);
}
}
namespace fanc_minimal
{
internal static class Program
{
static void Main(string[] args)
{
string checkValue(bool goodValue, bool correctNumber, int Value) => (goodValue, correctNumber) switch
{
(true, true) => $"Your input value ({Value}) has been accepted.",
(false, true) => $"You entered {Value}. Please enter a number between 5 and 10:",
_ => "Sorry, you entered an invalid number, please try again:"
};
Console.WriteLine("Enter an integer value between 5 and 10:");
for (var validValue = false; !validValue; )
{
var validNumber = int.TryParse(Console.ReadLine(), out var numValue);
Console.WriteLine(checkValue(validValue = numValue >= 5 && numValue <= 10, validNumber, numValue));
}
}
}
}
но это пример оголтелого минимализма строк ))namespace func_next
{
internal static class Program
{
static void Main(string[] args)
{
const int min = 5;
const int max = 10;
var value = min - 1;
var stop = false;
bool success() => value >= min && value <= max;
string check() => (int.TryParse(Console.ReadLine(), out value), stop = success()) switch
{
(true, true) => $"Your input value ({value}) has been accepted. Press Enter to Exit )))",
(true, false) => $"You entered {value}. Please enter a number between 5 and 10:",
_ => "Sorry, you entered an invalid number, please try again:"
};
for ("Enter an integer value between 5 and 10:".print(); !stop; check().print()) ;
}
static void print(this string s) => Console.WriteLine(s);
}
}
.. и снова.. лишь пример перфекционизма.. но код содержит взаимозависмости, не допустимые в большом проекте ))if
.. ну и показать мощь сишныхfor
)))namespace func_next
{
internal static class Program
{
static void Main(string[] args)
{
const string welcome = "Enter an integer value between 5 and 10:";
const int min = 5;
const int max = 10;
var value = min - 1;
var stop = false;
bool success() => value >= min && value <= max;
bool valid() => int.TryParse(Console.ReadLine(), out value);
string check() => (valid(), stop = success()) switch
{
(true, true) => $"Your input value ({value}) has been accepted.",
(true, false) => $"You entered {value}. Please enter a number between 5 and 10:",
_ => "Sorry, you entered an invalid number, please try again:"
};
for (welcome.print(); !stop; check().print()) ;
}
static void print(this string s) => Console.WriteLine(s);
}
}
namespace func_next
{
internal static class Program
{
static void print(this string s) => Console.WriteLine(s);
static void Main(string[] args)
{
const int min = 5;
const int max = 10;
var value = min - 1;
string welcome() => $"Enter an integer value between {min} and {max}:";
string accepted() => $"Your input value ({value}) has been accepted.";
string repeat() => $"You entered {value}. Please enter a number between {min} and {max}:";
const string ups = "Sorry, you entered an invalid number, please try again:";
bool valid() => int.TryParse(Console.ReadLine(), out value);
bool success() => value >= min && value <= max;
var stop = false;
string check() => (valid(), stop = success()) switch
{
(true, true) => accepted(),
(true, false) => repeat(),
_ => ups
};
for (welcome().print(); !stop; check().print()) ;
}
}
}
шарм ситуации в том, что тушка программы сводится к строкеfor (welcome.print(); !stop; check().print()) ;
а все остальное - лишь определение "понятий"... обожаю функциональный стиль ))namespace func_next
{
internal static class Program
{
static void print(this string s) => Console.WriteLine(s);
static void Main(string[] args)
{
var min = 5;
var max = 10;
var value = min - 1;
string welcome() => $"Enter an integer value between {min} and {max}:";
string accepted() => $"Your input value ({value}) has been accepted.";
string repeat() => $"You entered {value}. Please enter a number between {min} and {max}:";
const string ups = "Sorry, you entered an invalid number, please try again:";
var valid = false;
bool get() => valid = int.TryParse(Console.ReadLine(), out value);
bool success() => value >= min && value <= max && valid;
var stop = false;
string check() => (get(), stop = success()) switch
{
(true, true) => accepted(),
(true, false) => repeat(),
_ => ups
};
for (welcome().print(); !stop; check().print()) ;
}
}
}
.. тут уже полшага до модификации min/max на ходу ;))