帮我改下这个java小程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 14:46:14
import java.util.*;
public class Math {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String ch;
do{
System.out.println("请输入矩形的长宽:");
double a = in.nextDouble();
double b = in.nextDouble();
if(a>0 && b>0) {
double zhouchang = 2*(a+b);
double mianji = a*b;
System.out.println("矩形的周长:" + zhouchang + "\n矩形的面积:" + mianji);
}
else {
System.out.println("输入错误,请重新输入");
}
System.out.println("是否继续(y/n)");
ch=in.next();
}while(ch.equals("y") || ch.equals("Y"));

}
}

这个是用来求矩形的面积和周长的。
我想让这个小程序更健壮
如果输入字符也能报错,请问
这个我应该怎么改呀?

import java.util.*;
import java.util.regex.Pattern;

public class Math {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String ch;
do {
System.out.println("请输入矩形的长宽:");
String a = in.nextLine();
String b = in.nextLine();
String regex="^[0-9]+.*[0-9]*$";
boolean p=Pattern.matches(regex, a);
boolean p1=Pattern.matches(regex,b);
if (p==true && p1==true) {
double c=Double.valueOf(a).doubleValue();
double d=Double.valueOf(b).doubleValue();
double zhouchang = 2 * (c + d);
double mianji = c * d;
System.out.println("矩形的周长:" + zhouchang + "\n矩形的面积:" + mianji);
} else {
System.out.println("输入错误,请重新输入");
}
System.out.println("是否继续(y/n)");
ch = in.nextLine();
} while (ch.equals("y") || ch.equals("Y"));

}
}