一、需求分析:
1、輸入一個數組-----------------------------------------》程序要接收一組輸入的數組,沒有明確這組數組有多大
2、一個數字組成的數組--------------------------------》接收到的數組只能是數字
3、輸出接收到數組的最大值和最小值--------------》得到最大和最小值
二、技術難點
1、怎么從用戶輸入獲取到一個數字數組?
可以用BufferedReader類:從字符輸入流中讀取文本,緩沖各個字符,從而實現字符、數組和行的高效讀取。
2、怎么得到最大最小值?
這個好辦最簡單就是遍歷數組嘛
代碼實現:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package com.itheima; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; /** * 6、 輸入一個數字組成的數組,輸出該數組的最大值和最小值 * * @author [email protected] */ public class Test6 { public static void main(String[] args) throws IOException { System.out.println( "請輸入一組數字:" ); // 創建輸入流對象 BufferedReader reader = new BufferedReader( new InputStreamReader( System.in)); // 讀取一行信息 String input = reader.readLine(); // 以空格為分隔符,轉換成數組 String[] numbers = input.split( " " ); int [] values = new int [numbers.length]; for ( int j = 0 ; j < numbers.length; j++) { values[j] = Integer.parseInt(numbers[j]); } numbers = null ; // 回收numbers數組的資源 // 獲取接收到的數組里面的最大、最小數值 // 獲取最大值和獲取最小值分別寫成了兩個函數的話,就等于是多遍歷了一遍這個數組,效率降低了,可擴展性增強了 System.out.printf( "MAX:%d, MIN:%d\n" , getMax(values), getMin(values)); } public static int getMax( int [] values) { int tmp = Integer.MIN_VALUE; if ( null != values) { tmp = values[ 0 ]; for ( int i = 0 ; i < values.length; i++) { if (tmp < values[i]) { tmp = values[i]; } } } return tmp; } public static int getMin( int [] values) { int tmp = Integer.MIN_VALUE; if ( null != values) { tmp = values[ 0 ]; for ( int i = 0 ; i < values.length; i++) { if (tmp > values[i]) { tmp = values[i]; } } } return tmp; } } |