static void Main(string[] args)
{
try
{ int a, b, c, d;
Console.WriteLine("请输入四个整数");
Console.WriteLine("请输入第一整数");
a =Convert .ToInt16 ( Console.ReadLine());
Console.WriteLine("请输入第二整数");
b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第三整数");
c = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第四整数");
d = Convert.ToInt16(Console.ReadLine());
Number n = new Number();
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
n.GetMin(list);
n.GetMax(list);
}
catch
{
int a, b, c, d;
Console.WriteLine("请输入四个整数");
Console.WriteLine("请输入第一整数");
a =Convert .ToInt16 ( Console.ReadLine());
Console.WriteLine("请输入第二整数");
b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第三整数");
c = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第四整数");
d = Convert.ToInt16(Console.ReadLine());
Number n = new Number();
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
for (int i=0;i<4;i++)
{
try
{
Convert.ToInt16(list[i]);
}
catch
{
Console.WriteLine("请输入");
}
}
}
}
我想输入四个整数,取最大值和最小值,想通过键盘输入,如果输入的不是整数提示重新输入,如果第一个错了,提示输入第一个,如果第二个错了提示输入第二个,但是我的代码总是重头开始,而且捕捉不到异常,请问高手怎么做,谢谢
{
try
{ int a, b, c, d;
Console.WriteLine("请输入四个整数");
Console.WriteLine("请输入第一整数");
a =Convert .ToInt16 ( Console.ReadLine());
Console.WriteLine("请输入第二整数");
b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第三整数");
c = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第四整数");
d = Convert.ToInt16(Console.ReadLine());
Number n = new Number();
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
n.GetMin(list);
n.GetMax(list);
}
catch
{
int a, b, c, d;
Console.WriteLine("请输入四个整数");
Console.WriteLine("请输入第一整数");
a =Convert .ToInt16 ( Console.ReadLine());
Console.WriteLine("请输入第二整数");
b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第三整数");
c = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第四整数");
d = Convert.ToInt16(Console.ReadLine());
Number n = new Number();
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
for (int i=0;i<4;i++)
{
try
{
Convert.ToInt16(list[i]);
}
catch
{
Console.WriteLine("请输入");
}
}
}
}
我想输入四个整数,取最大值和最小值,想通过键盘输入,如果输入的不是整数提示重新输入,如果第一个错了,提示输入第一个,如果第二个错了提示输入第二个,但是我的代码总是重头开始,而且捕捉不到异常,请问高手怎么做,谢谢
int a, b, c, d;
Console.WriteLine("请输入四个整数");
Console.WriteLine("请输入第一整数");
while(!int.TryParse(Console.ReadLine(),out a)
{
Console.WriteLine("输入不正确,请重新输入第一整数");
}
Console.WriteLine("请输入第二整数");
while(!int.TryParse(Console.ReadLine(),out b)
{
Console.WriteLine("输入不正确,请重新输入第二整数");
}
Console.WriteLine("请输入第三整数");
while(!int.TryParse(Console.ReadLine(),out c)
{
Console.WriteLine("输入不正确,请重新输入第三整数");
}
Console.WriteLine("请输入第思整数");
while(!int.TryParse(Console.ReadLine(),out d)
{
Console.WriteLine("输入不正确,请重新输入第四整数");
}
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
n.GetMin(list);
n.GetMax(list);
catch(Exception ex)
{
int a, b, c, d;
Console.WriteLine("请输入四个整数"); 【1】
Console.WriteLine("请输入第一整数"); 【2】
a =Convert .ToInt16 ( Console.ReadLine());
Console.WriteLine("请输入第二整数"); 【3】
b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第三整数");
c = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入第四整数"); 【4】
d = Convert.ToInt16(Console.ReadLine());
Number n = new Number();
int[] list = new int[4];
list[0] = a;
list[1] = b;
list[2] = c;
list[3] = d;
for (int i=0;i<4;i++)
{
try
{
Convert.ToInt16(list[i]);
}
catch
{
Console.WriteLine("请输入");
}
}
}
就是说当Convert的方法出现异常的的话,你的catch语句总是按【1】,【2】,【3】,【4】,输出你在catch里面已经写了这个顺序了。
比较好的方法就是输入一个数是检查一次输入是否是整数,如果不是就要用户重新输入,这样的话。就不用考虑顺序了。
int[] list = new int[Num];
Console.WriteLine("请输入{0}个整数",Num);
for(int i = 0; i < Num; i++)
{
try
{
Console.WriteLine("请输入第{0}整数",i+1);
list[i] = (int)Console.ReadLine();
}
catch(Exception)
{
Console.WriteLine("输入并不是整数");
i--;
}
}
list[i] = (int)Console.ReadLine();【错误处】
环境Visual2008 SP2
无法将“String”转化成“int”。改成这样就可以了
list[i] = Convert.ToInt16(Console.ReadLine());
double[] list = new double[Num];
Console.WriteLine("请输入{0}个整数", Num);
for (int i = 0; i < Num; i++)
{
try
{
Console.WriteLine("请输入第{0}整数", i + 1);
list[i] = Convert.ToDouble(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("输入并不是整数");
i--;
}
}
double[] list = new double[Num];
list[i] = Convert.ToDouble(Console.ReadLine());
把这个声明成double就可以了,应为C#中可以自动转化。就是int可以自动转化成double。