【发布时间】:2014-10-30 05:56:25
【问题描述】:
我不确定如何让异常起作用
程序应提示输入要转换的英镑整数和汇率。然后它应该以类似于下面的输出的方式显示等量的 follar 数。
这里的第一部分是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CurrencyConvertor
{
class Program
{
static void Main(string[] args)
{
CurrencyConvertor();
Console.ReadLine();
}
private static void CurrencyConvertor()
{
int ivalue;
float exchange;
float results;
bool valid;
Console.WriteLine(" please enter a whole number of pounds");
do
{
try
{
ivalue = int.Parse(Console.ReadLine());
Console.WriteLine(" pounds entered : " + ivalue);
Console.WriteLine("please enter the exchange rate");
exchange = float.Parse(Console.ReadLine());
Console.WriteLine(" exchange rate is " + exchange);
results = ivalue * exchange;
Console.WriteLine(" £ " + ivalue + " is equivlent to" + " $ {0:N}", results);
valid = true;
}
catch
{
Console.WriteLine("unable to convert to integer");
Console.WriteLine(" Try again- ensure you enter a number");
valid = false;
}
} while (valid == false);
Console.ReadLine();
}
}
}
应验证两个输入以确保用户输入适当的数据类型 - 下面的输出说明了用户输入非数字数据时的预期输出。
所以它应该显示
please enter an integer
try again - ensure you enter an integer
12
pounds entered 12
please enter an exchange rate
asd
unable to convert to a number
try again - ensure you enter a number
1.56
exchange rate is 1:56
£12.00 is equivalent to $18.72
我似乎无法让它显示汇率错误消息“无法转换为数字”
【问题讨论】:
-
你试过调试你的代码吗?哪条线似乎失败了?
-
请去掉所有空行
-
那里应该有另一个异常,所以它应该显示 'console.writelinne("unable to conver to a number")' @YuvalItzchakov 不确定它的去向?
-
您以完全错误的方式使用异常,您应该使用
int.TryParse来验证数字,而不是捕获异常