[英]FormatException C#
so I'm currently taking a course on C#
programming to get freshened up. 所以我目前正在学习
C#
编程课程,以便更新。
Turned out I forgot some important things! 原来我忘记了一些重要的事情!
namespace FitnessFrog
{
class Program
{
static void Main()
{
int runningTotal = 0;
bool keepGoing = true;
while(keepGoing)
{
// Prompt the user for minutes exercised
Console.Write("Enter how many minutes you exercised or type \"quit\" to exit: ");
string input = Console.ReadLine();
if (input == "quit")
{
keepGoing = false;
}
else
{
try
{
int minutes = int.Parse(input);
runningTotal = runningTotal + minutes;
if(minutes <= 0)
{
Console.WriteLine("Eh, what about actually exercising then?");
continue;
}
else if(minutes <= 10)
{
Console.WriteLine("Better than nothing, am I right?");
}
else if (minutes <= 24)
{
Console.WriteLine("Well done, keep working!");
}
else if (minutes <= 60)
{
Console.WriteLine("An hour, awesome! Take a break, ok?");
}
else if (minutes <= 80)
{
Console.WriteLine("Woah, remember to drink if you're going to exercise THAT long!");
}
else
{
Console.WriteLine("Okay, now you're just showing off!");
}
Console.WriteLine("You've exercised for " + runningTotal + " minutes");
}
catch(FormatException)
{
Console.WriteLine("That is not valid input");
continue;
}
// Repeat until the user quits
}
}
}
}
}
So I'm trying to make it say "This is not valid input" when you type a string instead of an integer. 因此,当您键入字符串而不是整数时,我试图让它说“这是无效的输入”。
Thanks in advance! 提前致谢!
<3
int minutes = int.Parse(input);
- you should use TryParse()
instead of Parse()
- 你应该使用
TryParse()
而不是Parse()
int minutes;
bool parsed = int.TryParse(input, out minutes);
if (parsed)
{
// your if statements
}
else
{
Console.WriteLine("That is not valid input");
}
You should use int.TryParse
instead for Parse, since it having internal exception handling mechanisms, And you can use it's return value(true/false)to check whether the operation is successful or not, for a successful conversion it will return true, and the return value for a failure conversion will be false
您应该使用
int.TryParse
代替Parse,因为它具有内部异常处理机制,并且您可以使用它的返回值(true / false)来检查操作是否成功,为了成功转换它将返回true,并且失败转换的返回值将为false
int minutes;
if(!int.TryParse(input,out minutes)
{
Console.WriteLine("invalid input");
}
else
{
// Proceed
}
If you are receiving input from your users, you will want to consider actually using the Int32.TryParse()
method to determine if the parse was successful or not : 如果您正在接收来自用户的输入,您将需要考虑实际使用
Int32.TryParse()
方法来确定解析是否成功:
int minutes;
// Attempt the parse here
if(Int32.TryParse(input, out minutes))
{
// The parse was successful, your value is stored in minutes
}
else
{
// The parse was unsuccessful, consider re-prompting the user
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.