C#:如何为此代码编写另一个函数
本文关键字:另一个 函数 代码 | 更新日期: 2023-09-27 18:33:57
我将如何为此代码编写另一个名为noNegatives的函数?我想用另一个名为noNegatives的函数重写代码,但我仍然希望程序做同样的事情。
class Program
{
static void Main(string[] args)
{
string numberIn;
int numberOut;
numberIn = Console.ReadLine();
while (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
{
Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
numberIn = Console.ReadLine();
}
}
}
static void Main(string[] args)
{
int number = NoNegatives();
}
static int NoNegatives()
{
int numberOut;
string numberIn = Console.ReadLine();
while (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
{
Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
numberIn = Console.ReadLine();
}
return numberOut;
}
Follwing是最简单的写法
static void Main(string[] args)
{
int retVal=0;
string numberIn;
int numberOut;
numberIn = Console.ReadLine();
while(noNegatives(numberIn,numberOut)=0)
{
}
}
int noNegatives(String numberIn,int numberOut)
{
numberIn = Console.ReadLine();
if (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
{
Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
return 0;
}
else
{
return 1;
}
}
这个问题与这里发布的问题非常相似。
static void Main(string[] args)
{
string numberIn = Console.ReadLine();
int numberOut;
while(!IsNumeric(numberIn))
{
Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
numberIn = Console.ReadLine();
}
numberOut = int.Parse(numberIn);
}
private static bool IsNumeric(string num)
{
return num.ToCharArray().Where(x => !Char.IsDigit(x)).Count() == 0;
}
由于负号不是数字,因此对于负数,IsNumeric 将返回 false。