[英]Checking user input in C#
我只是寫了我的第一個C#控制台應用程序,我還是一個初學者。 無論如何,我嘗試了下面的代碼,它似乎可以解決二次方程式。 我想為以下情況添加代碼:用戶輸入字符串而不是整數,並向錯誤消息提供有關如何實現此操作的任何想法?
namespace Quadratic_equation
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("welcome to seyi's quadratic calculator!!!");
Console.Write("a:");
double a = Convert.ToInt32(Console.ReadLine());
Console.Write("b:");
double b = Convert.ToInt32(Console.ReadLine());
Console.Write("c:");
double c = Convert.ToInt32(Console.ReadLine());
if ((b * b - 4 * a * c) < 0) {
Console.WriteLine("There are no real roots!");
}
else {
double x1 = (-b + Math.Sqrt((b*b)-4*a*c)) /2*a;
double x2 = (-b + Math.Sqrt((b*b)-4*a*c)) /2*a;
Console.WriteLine("x:{0}",x1);
Console.WriteLine("y:{0}",x2);
}
Console.ReadKey();
}
}
}
您可以使用Int32.TryParse
方法檢查您的字符串是否為有效整數。 此方法返回一個boolean
值,表示您的對話是否成功。
將數字的字符串表示形式轉換為其等效的32位有符號整數。 返回值指示轉換是否成功。
而且我不明白您為什么要將Convert.ToInt32
方法的返回值保持double
。 這些因子(a,b,c)應該是整數,而不是兩倍。
int a;
string s = Console.ReadLine();
if(Int32.TryParse(s, out a))
{
// Your input string is a valid integer.
}
else
{
// Your input string is not a valid integer.
}
此Int32.TryParse(string, out int)
重載使用NumberStyle.Integer
作為默認值。 這意味着您的字符串可以具有以下之一 ;
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
在do-while
循環中使用try-catch
塊:
bool goToNextNum = false;
do
{
try
{
double a = Convert.ToInt32(Console.ReadLine());
goToNextNum = true;
}
catch
{
Console.WriteLine("Invalid Number");
}
} while (goToNextNum == false);
這將循環直到a
為有效數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.