数字大小比较

编写java程序,输入3个整数,并求出3个整数的最大值和最小值。

如果要想进行数字的输入处理,那么应该保证输入错误的时候可以重新输入,为了可以达到重用的一个设计应该准备一个单独的输入数据类。

  1. 定义一个输入工具类
package com.io.demo.util;

import java.util.Scanner;

public 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.print(prompt);	//打印提示信息
			if(input.hasNext("\\d+")){
				num = Integer.parseInt(input.next("\\d+"));	//记录数据
				flag = false;
			}else{
				System.out.println("输入的内容不是数据");
			}
		}
		return num;
		
	}
	
}
  1. 定义数据的输入处理
package com.io.demo.service;

public interface INumberSevice {
	
	/**
	 * 输入数据并缺返回输入数据的最大值与最小值
	 * @param count	输入数据的个数
	 * @return	包含有两个内容,第一个是最大值,第二个为最小值
	 */
	public int[] stat(int count);
	
}
  1. 定义接口的实现子类
package com.io.demo.service.impl;

import com.io.demo.service.INumberSevice;
import com.io.demo.util.InputUtil;

public class NumberServiceImpl implements INumberSevice{
	
	@Override
	public int[] stat(int count) {
		
		int[] result = new int[2];	//定义返回的结果
		int[] data = new int[count];	//开辟一个数组
		for(int x =0;x < data.length;x++) {	//数字的循环输入
			data[x] = InputUtil.getInt("请输入第"+ (x+1) +"个数字");
		}
		result[0] = data[0];
		result[1] = data[0];
		for(int x = 0;x < data.length ;x++) {
			if(data[x] > result[0]) {
				result[0] = data[x];
			}
			if(data[x] < result[1]) {
				result[1] = data[x];
			}
		}
		return result;

	}
	
}
  1. 定义工厂类获取对象
package com.io.demo.factory;

import com.io.demo.service.INumberSevice;
import com.io.demo.service.impl.NumberServiceImpl;

public class Factory {
	
	private Factory() {}	//私有化构造
	
	public static INumberSevice getInstance() {
		
		return new NumberServiceImpl();
		
	}
	
}
  1. 编写测试程序类
package com.io.demo;

import com.io.demo.factory.Factory;
import com.io.demo.service.INumberSevice;

public class IOCaseDemo {
	
	public static void main(String[] args) {
		
		INumberSevice numberService = Factory.getInstance();
		int[] result = numberService.stat(3);
		System.out.println("最大值:"+result[0]+"\n最小值:"+result[1]);
		
	}
	
}