Java语言程序设计 异常练习(二)

1.校验年龄格式:

编写一个信息录入程序,获取用户输入的姓名和年龄。如果用户输入的年龄不是正确的年龄数字(如0.5),则抛出异常并让用户重新输入;如果年龄正确,则打印用户输入的信息。

代码如下:

package practice;
import java.util.*;
public  class practice2
{
	public static void main(String[] args) 
	{
		boolean b = true;
		Scanner input = new Scanner(System.in);
		do {
		try 
		{
			System.out.println("请输入年龄和姓名:");
			int age = input.nextInt();
			String name = input.next();
			Person p = new Person(name , age);
			p.GetMessage();
			b = false;
			
		}catch(Exception e) 
		{
			System.out.println("您输入的年龄异常,请重新输入");
			input.nextLine();
		}
		}while(b);
	}
}
class Person
{
	String name;
	int age;
	public Person(String name , int age)
	{
		this.age=age;
		this.name=name;
	}
	public void GetMessage()throws Exception
	{
		System.out.println("姓名 : "+this.name+"  年龄 : "+this.age);
	}
}

结果如下:

2.中断循环

编写使用for循环在控制台上输出0-9的代码。代码要实现以下两个功能:当循环变量的值为2时抛出异常,循环中断;当循环变量的值为2时,虽然会抛出异常,但是循环不会中断

代码如下:

package practice;

public class practice3 
{
	public static void main(String[] args) 
	{
			for(int i=1;i<=9;i++) 
			{
				try 
				{
				System.out.print(i+"\t");
				if(i == 2) 
					{
						throw new RuntimeException("执行出错了");
					}
				}catch(Exception e) 
					{
						System.out.println(e.getMessage());
						continue;
					}
			}
	}
}

 结果如下:

代码如下:

package practice;

public class practice4 
{
	public static void main(String[] args) 
	{
			for(int i=1;i<=9;i++) 
			{
				try 
				{
				System.out.print(i+"\t");
				if(i == 2) 
					{
						throw new RuntimeException("执行出错了");
					}
				}catch(Exception e) 
					{
						System.out.println(e.getMessage());
						break;
					}
			}
	}
}

 结果如下:

3.计算最大公约数

创建Computer类,该类中有一个计算两个数的最大公约数的方法,如果向该方法传递负数,该方法就会抛出自定义异常。

代码如下:

package practice;
import java.util.*;
public class practice5 
{
	public static void main(String[] args) 
	{
		Scanner input = new Scanner(System.in);
		boolean b = true;
		do {
		try 
		{
			System.out.println("请输入两个正整数:");
			int m = input.nextInt();
			int n = input.nextInt();
			if(m<=0||n<=0) 
			{
				throw new RuntimeException("输入的整数错误,请重新输入");
				
			}
			Computer c = new Computer();
			c.getNumber(m, n);
			System.out.println(m +" 和 "+ n + " 的最大公约数为 " + c.getNumber(m, n));
			b = false;
		}catch(Exception e) 
		{
			System.out.println("请重新输入整数:");
			input.nextLine();
		}
		}while(b);
	}
}
class Computer
{
	public int getNumber(int m, int n) 
	{
		int Min;
		if(m > n) 
		{
			Min = n;
		}else 
		{
			Min = m;
		}
		int num = 0;
		for(int i = 1; i < Min;i++) 
		{
			if(m % i == 0&&n % i == 0) 
			{
				num = i;
			}
		}
		return num;
	}
}
class  NumberException extends Exception
{
	
}

 结果如下:

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差劲的厉害了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值