本帖最后由 杨丽静 于 2013-12-4 10:13 编辑
import java.io.*;
import java.util.*;
/*
* 1,输入整形偶数x,且2<=n<=10000,要求先把1到n中的所有基数从小到大输出,再把所有的偶数从小到大输出
*,2,当用户输入非整形字符时或超出范围时的异常处理。
*
*/
//处理超过10000的异常
class OvertopException extends Exception
{
OvertopException(String message)//定义异常信息
{
super(message);//因为父类中已经把异常信息都操作完了
}
}
//处理非整数
class NumberFormatException extends Exception
{
NumberFormatException(String message)//定义异常信息
{
super(message);//因为父类中已经把异常信息都操作完了
}
}
public class MyTest2
{
public static void main(String[] args) throws IOException,NumberFormatException, OvertopException
{
String s = in();
//处理异常
try
{
dealWith(s);
}
catch(OvertopException e)
{
System.out.println(e.toString());
String s1 = in();
dealWith(s1);
}
catch(NumberFormatException ee)
{
System.out.println(ee.toString());
String s2 = in();
dealWith(s2);
}
}
public static String in()
{
System.out.println("请输入0到10000的正整数x");
//在键盘上输入一个整数
Scanner sc = new Scanner(System.in);
String s = sc.next();
return s;
}
public static void dealWith(String s) throws OvertopException, NumberFormatException
{
//判断字符串中是否有"."
boolean b = s.contains(".");
if(b)
throw new NumberFormatException("输入的数据不是整数!请重新输入");
//将字符串转换成整数
int x = Integer.parseInt(s);
if(x > 10000)
throw new OvertopException("数据超出范围!请重新输入");//手动通过throw关键字抛出一个自定义异常
else
{
//输出打印奇数
for(int i = 1;i <= x; i++)
{
int j = i%2;
if(j == 1)
System.out.print(i +" ");
}
System.out.println();
//输出打印偶数
for(int i = 1;i <= x; i++)
{
int j = i%2;
if(j == 0)
System.out.print(i +" ");
}
}
}
}
|