接收用户从键盘上输入的两个整数,并依次实现以下功能:输入正确时,求出两个数的最大公约数、最小公倍数;输入格式不正确时,编写相应代码处理异常,代码应当支持循环输入,直到满足数据格式要求为止。
public static void main(String[] args) {
while (true){
System.out.println("请输入两个整数(回车后输入第二个):");
Scanner sc1 = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
if (sc1.hasNextInt() && sc2.hasNextInt()) {
int m = sc1.nextInt();
int n = sc2.nextInt();
method(m,n);
break;
}else{
System.out.println("您输入的数据不合法,请重新输入两个整数");
}
}
}
public static void method(int m,int n){
int max = 0, min = 0;//定义最大公约数、最小公倍数
if (m > n)//将m记为两数间的较小值
{
int t = m;
m = n;
n = t;
}
for (int i = 1; i <= m; i++) {
if (m % i == 0 & n % i == 0)
max = i;
}
min = m * n / max;
System.out.println("最大公约数为:" + max + ",最小公倍数为:" + min);
}
结果输出:
请输入两个整数(回车后输入第二个):
4
65
最大公约数为:1,最小公倍数为:260
请输入两个整数(回车后输入第二个):
a
您输入的数据不合法,请重新输入两个整数
请输入两个整数(回车后输入第二个):