C# C“为什么我得到”;未处理的异常:System.FormatException:输入字符串的格式不正确;当我使用TryParse时?
我得到“未处理的异常:System.FormatException:输入字符串的格式不正确。”但实际上我用TryParse捕获了异常C# C“为什么我得到”;未处理的异常:System.FormatException:输入字符串的格式不正确;当我使用TryParse时?,c#,input,unhandled-exception,C#,Input,Unhandled Exception,我得到“未处理的异常:System.FormatException:输入字符串的格式不正确。”但实际上我用TryParse捕获了异常 using System; using System.Linq; using System.Collections.Generic; class MinAndMax { static void Main() { // Task 3 - Write a program that reads from the console
using System;
using System.Linq;
using System.Collections.Generic;
class MinAndMax
{
static void Main()
{
// Task 3 - Write a program that reads from the console
// a sequence of N integer numbers and returns the minimal
// and maximal of them.
int n;
double num = 0, counter = 0, minNum = 0, maxNum = 0;
List<double> numbers = new List<double>();
Console.Write("How many numbers will you enter: ");
bool isNum = int.TryParse(Console.ReadLine(), out n);
if (isNum)
{
for (counter = 1; counter <= n; counter++)
{
Console.Write("Enter number {}: ", counter);
bool isValid = double.TryParse(Console.ReadLine(), out num);
if (isValid == false)
{
Console.WriteLine("Invalid input!");
}
else
{
numbers.Add(num);
}
}
minNum = numbers.Max();
maxNum = numbers.Min();
Console.WriteLine("The maximal of the numbers is: " + maxNum);
Console.WriteLine("The minimal of the numbers is: " + minNum);
}
else
{
Console.WriteLine("Invalid input!");
}
}
}
使用系统;
使用System.Linq;
使用System.Collections.Generic;
米南德马克斯级
{
静态void Main()
{
//任务3-编写从控制台读取的程序
//由N个整数组成的序列,并返回最小值
//其中最大的。
int n;
double num=0,counter=0,minNum=0,maxNum=0;
列表编号=新列表();
控制台。写下(“您将输入多少个数字:”);
bool isNum=int.TryParse(Console.ReadLine(),out n);
if(isNum)
{
对于(计数器=1;计数器行
Console.Write("Enter number {}: ", counter);
将引发异常,您应该将其更改为
Console.Write("Enter number {0}: ", counter);
线路
Console.Write("Enter number {}: ", counter);
将引发异常,您应该将其更改为
Console.Write("Enter number {0}: ", counter);
导致错误消息的是您的格式字符串。请在括号之间放置索引:
Console.Write("Enter number {0}: ", counter);
导致错误消息的是您的格式字符串。请在括号之间放置索引:
Console.Write("Enter number {0}: ", counter);
除了先前海报已经修复的控制台.Write
错误之外,如果用户只输入字符串,因为数字
列表将为空,您还将在此处获得系统.InvalidOperationException
minNum = numbers.Max();
maxNum = numbers.Min();
除了先前海报已经修复的控制台.Write
错误之外,如果用户只输入字符串,因为数字
列表将为空,您还将在此处获得系统.InvalidOperationException
minNum = numbers.Max();
maxNum = numbers.Min();
异常可能由Console.Write(“输入编号{}:”,计数器)引发;
异常可能由Console.Write(“输入编号{}:”,计数器)引发
显然..我怎么可能没有看到!非常愚蠢的错误..非常感谢!显然..我怎么可能没有看到!非常愚蠢的错误..非常感谢!是的,你是对的,我把minNum=numbers.Max();maxNum=numbers.Min();放在else块中。是的,你是对的,我把minNum=numbers.Max();maxNum=numbers.Min();在else街区。