实验内容:
使用java语言编程,实现键盘录入两个数据,比较两个数是否相等(采用方法调用方式),输出比较结果;
提高:对实现数字比较的方法进行重载,使之适应int、float、double、short类型的比较。
思路梳理:
接收键盘输入采用Scanner对象,在不确定输入数据的类型前将输入数据存储到String中,然后采用instanceof判断输入数据的类型;
重载的比较方法由四个,参数个数为2,参数类型分别为:int、float、double、short
代码实现:(TODO部分可根据需要进行完善)
package test; import java.util.Scanner; /** * 键盘录入两个数据,比较两个数是否相等; * 提高:对比较方法进行重载,使之适应int,float,double,short类型的比较 * * @author jntcf * */ public class HelloWorld { public static void main(String[] args) { Scanner sc = new Scanner (System.in); System.out.println("请输入第一个数"); String s1 = sc.next(); System.out.println("请输入第二个数"); String s2 = sc.next(); boolean isNum = false; //用于标记输入的数据是否能确定类型,进行比较 //判断输入的数据是否为int型,此处只选取了第一个输入进行检查 //TODO:继续完善,1)增加对第二个输入类型的检查; // 2)进一步界定是否为short类型 try { Integer iCheckValue = Integer.parseInt(s1); if (iCheckValue instanceof Integer == true) { isNum = true; System.out.println("数据类型:int"); compareTwoNum(Integer.parseInt(s1),Integer.parseInt(s2)); } } catch(NumberFormatException e) { System.out.println("数据类型不是int..."); } //判断输入的数据是否为double型,此处只选取了第一个输入进行检查 //TODO:继续完善,1)增加对第二个输入类型的检查; // 2)进一步界定是否为float类型 try { Double dCheckValue = Double.parseDouble(s1); if (dCheckValue instanceof Double == true) { isNum = true; System.out.println("数据类型:double"); compareTwoNum(Double.parseDouble(s1),Double.parseDouble(s2)); } } catch(NumberFormatException e) { System.out.println("数据类型不是double..."); } if (!isNum) System.out.println("未知的数据类型, 请检查输入!!!"); sc.close(); } // TODO:将比较方法的返回值类型设置为boolean // 在main函数中调用时,根据方法的返回值输出本次比较的结果 public static void compareTwoNum(float a, float b) { if(a < b) { System.out.println("【float】a < b"); }else { System.out.println("【float】a >= b"); } } public static void compareTwoNum(double a,double b) { if(a < b) { System.out.println("【double】a < b"); }else { System.out.println("【double】a >= b"); } } public static void compareTwoNum(short a,short b) { if(a < b) { System.out.println("【short】a < b"); }else { System.out.println("【short】a >= b"); } } public static void compareTwoNum(int a,int b) { if(a < b) { System.out.println("【int】a < b"); } else { System.out.println("【int】a >= b"); } } }