1 import java.util.Scanner;
2
3 /**
4 This program combines several common loop algorithms.
5 */
6 public class LoopAlgorithms
7 {
8 public static void main(String[] args)
9 {
10 Scanner in = new Scanner(System.in);
11
12 System.out.print("Enter input: ");
13 int input = in.nextInt();
14 int min = input; // The largest input
15 int max = input; // The smallest input
16
17 int count = 1; // The number of inputs
18 int sum = input; // The sum of the inputs
19
20 boolean foundNegative = false; // Set to true if we found at least one negative input
21 int negatives; // The count of negative inputs
22 int firstNegative = 0; // The position of the first negative input
23
24 if (input < 0)
25 {
26 foundNegative = true;
27 firstNegative = 1;
28 negatives = 1;
29 }
30 else
31 {
32 negatives = 0;
33 }
34
35 boolean done = false;
36 while (!done)
37 {
38 System.out.print("Enter input, 0 to quit: ");
39 input = in.nextInt();
40 if (input == 0) // Zero is the sentinel value
41 {
42 done = true;
43 }
44 else
45 {
46 sum = sum + input; // Computing sum and average
47 count++;
48
49 if (input < min) // Determining minimum and maximum
50 {
51 min = input;
52 }
53 else if (input > max)
54 {
55 max = input;
56 }
57
58 if (input < 0) // Counting matches
59 {
60 negatives++;
61
62 if (!foundNegative) // Finding first match
63 {
64 foundNegative = true;
65 firstNegative = count;
66 }
67 }
68 }
69 }
70 System.out.println("Minimum: " + min);
71 System.out.println("Maximum: " + max);
72 System.out.println("Sum: " + sum);
73 System.out.println("Average: " + sum * 1.0 / count);
74 System.out.println("Negative values: " + negatives);
75 if (foundNegative)
76 {
77 System.out.println("First negative: " + firstNegative);
78 }
79 }
80 }