欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编写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 ;
	}

}

 

相关标签: java java