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
{
}
结果如下: