编写java程序,输入3个整数,并求出3个整数的最大值和最小值(Scanner输入和BufferedReader输入)
程序员文章站
2024-03-15 22:04:42
...
package day20_javaIO_Demo; import java.util.Scanner; /* * 编写java程序,输入3个整数,并求出3个整数的最大值和最小值 *需要保证输入错误的时候可以重新输入,那么为了可以达到重用的设计 *应该准备单独的输入数据类 *利用Scanner输入 */ class InputUtil{//数据输入类(确定代码的重用性) private InputUtil () {} /** * 实现键盘接收数字的操作 * @param prompt 提示信息 * @return 一个可以使用的数字 */ public static int getInt (String prompt) { int num = 0 ; boolean flag = true ; while (flag) { Scanner input = new Scanner(System.in) ; System.out.println(prompt); //打印提示信息 if (input.hasNext("\\d+")) { num =Integer.parseInt(input.next("\\d+")); //返回数据 flag = false ; }else { System.out.println("输入的内容不是 数字 "); } } return num ; } } //定义数据的输入处理 interface INumberService { /** * 输入数据并且返回输入数据的最大值与最小值 * @param count 表示要输入数据的个数 * @return 包含有两个内容,第一个是最大值,第二个是最小值 */ public int [] stat (int count ) ; } //定义接口的实现子类 class NumberServiceImpl implements INumberService { @Override public int[] stat(int count) { int result [] = new int [2] ; //定义返回的结果 int data [] = new int [count] ; //开辟一个数组 for (int i = 0 ; i<data.length ; i ++) { //数组的循环输入 data [i] = InputUtil.getInt("请输入第"+(i+1)+"个数字"); } result [0] = data [0] ; //设第一个为最大值 result [1] = data [0] ; for (int i = 0 ;i < data.length ; i ++) { if (data [i] > result [0]) { result [0] = data [i] ; } if (data [i] < result [1]) { result [1] = data [i] ; } } return result; } } //定义工厂类 class FactoryNumber { private FactoryNumber () {} public static INumberService getInstance () { return new NumberServiceImpl () ; } } //编写程序测试类 public class java_NumberEqual { public static void main(String[] args) { INumberService numberService = FactoryNumber.getInstance() ; int result [] = numberService.stat(3) ; System.out.println("最大值:"+result[0]+"最小值:"+result[1]); } }
也可以使用BufferedReader输入使用:
class InputUtil{//数据输入类(确定代码的重用性) private InputUtil () {} /** * 实现键盘接收数字的操作 * @param prompt 提示信息 * @return 一个可以使用的数字 */ public static int getInt (String prompt) { BufferedReader buf = new BufferedReader (new InputStreamReader(System.in)) ; int num = 0 ; boolean flag = true ; while (flag) { System.out.println(prompt); //打印提示信息 String str = null ; try { str = buf.readLine() ; if (str.matches("\\d+")) { num =Integer.parseInt(str); //返回数据 flag = false ; }else { System.out.println("输入的内容不是 数字 "); } } catch (IOException e) { // TODO Auto-generated catch block System.out.println("输入的内容不是 数字 "); } } return num ; } }
上一篇: va_start和va_end详解
下一篇: vsprintf 对字符串添加命令的使用