Javaプログラムを作成し、3つの整数を入力し、3つの整数の最大値と最小値を見つけます(スキャナー入力とBufferedReader入力)

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

}

 

おすすめ

転載: blog.csdn.net/qq_41663470/article/details/114228554