简体   繁体   中英

Output contains less elements than expected

I'm learning Java on my own and just learned to declare, initialize and print from arrays. I have tried this exercise Basic Arrays that I found online for practice.

Here is my code:

public class ArrayExerciseTwo {

    public static void main(String[] args) {

        int[] values = new int[1000];

        for (int i = 0; i < values.length; i++) {
            values[i] = (10 + (int)(Math.random() * 89));
        }

        for (int i = 0; i < values.length; i++) {
            if (i == 0) {
                continue;
            }
            // at every 20 elements, print newline
            else if (i % 21 == 0) {
                System.out.println("");
            }

            // otherwise print 2 spaces
            else {
                System.out.print(values[i] + "  ");
            }
        }
    }
}

Output:

61 58 95 56 46 63 31 84 76 93 33 87 12 32 69 93 32 95 52 67
93 59 80 23 15 80 91 51 72 90 75 38 15 86 59 67 44 53 93 26
84 34 50 10 17 55 29 26 80 66 53 76 26 76 31 80 17 20 44 23
16 52 22 79 55 49 83 44 69 95 61 14 93 50 42 88 66 59 65 26
43 84 19 30 82 68 85 25 81 67 61 64 60 18 44 25 53 77 29 14
24 59 48 57 69 23 59 65 71 86 77 71 44 47 40 51 56 51 62 20
91 75 94 61 42 76 58 48 18 32 46 51 12 66 57 14 33 98 58 39
50 40 36 56 74 71 38 64 52 77 45 61 21 85 77 89 57 67 93 18
80 14 97 30 26 81 33 62 78 77 46 58 17 38 80 77 82 56 67 75
66 46 79 72 66 46 88 56 13 69 39 88 56 82 48 87 94 66 57 15
92 46 58 52 68 17 36 98 38 47 56 10 55 36 69 69 64 48 38 24
89 90 10 19 10 66 13 30 52 68 32 96 54 66 69 88 33 23 10 72
78 94 81 48 44 67 72 51 58 70 47 16 41 79 29 57 47 38 55 72
24 97 44 11 64 17 81 72 63 43 94 22 37 91 86 19 79 88 69 33
55 73 44 31 15 90 65 95 13 58 79 80 64 18 12 95 53 43 60 16
56 94 34 30 29 91 19 15 14 60 51 59 26 46 14 26 17 83 74 19
19 50 16 68 69 71 10 33 90 81 38 51 13 63 30 46 36 16 94 21
20 72 42 91 61 16 18 82 76 81 82 49 48 82 94 10 79 50 18 85
47 98 51 18 21 21 92 45 27 44 77 30 20 21 65 60 70 37 87 67
38 65 48 42 76 73 17 24 85 34 61 67 97 39 34 68 66 75 28 96
48 71 25 85 83 18 38 90 29 86 65 22 30 38 49 11 86 50 68 98
56 64 21 96 42 27 80 24 43 67 61 89 28 84 34 98 70 64 69 87
84 76 52 23 40 58 16 28 78 18 94 89 81 37 35 52 18 42 76 24
77 81 37 41 65 65 78 88 96 60 70 56 40 45 41 60 70 77 70 85
74 34 56 26 48 18 33 59 88 16 70 30 77 68 19 96 40 47 72 12
70 75 16 34 32 71 52 79 27 41 91 30 44 12 23 71 78 12 81 88
27 68 58 55 79 80 35 26 67 46 74 25 40 44 34 82 49 94 28 26
59 78 69 12 46 61 16 27 77 34 37 26 60 59 59 82 83 72 35 48
17 42 70 77 45 63 26 70 46 60 74 69 98 11 36 41 35 80 47 67
19 24 58 52 86 96 28 78 18 25 94 19 56 64 58 67 14 44 63 46
22 76 45 92 70 30 35 49 81 77 85 46 62 70 36 29 37 78 76 78
15 31 13 70 24 47 93 66 21 47 82 87 43 18 71 27 96 26 91 69
32 65 47 29 49 64 37 69 38 26 67 21 17 82 59 55 29 22 68 42
19 47 54 75 15 62 43 95 50 77 28 85 82 80 62 32 10 35 31 27
94 83 14 77 83 66 54 60 77 81 68 23 82 86 80 94 87 51 31 88
85 41 40 14 54 72 42 12 15 94 67 76 47 46 70 88 64 94 54 46
12 15 84 74 10 58 43 18 10 12 56 21 71 75 10 49 38 91 71 40
89 62 17 60 45 27 76 79 96 21 87 67 17 62 87 21 63 87 87 50
75 57 17 77 46 45 44 70 10 54 81 88 60 42 59 96 77 93 55 63
67 23 74 31 84 92 96 13 32 24 51 25 18 37 84 73 72 47 33 64
73 75 43 98 83 45 79 44 82 54 11 80 19 23 17 37 41 46 21 92
24 52 66 29 65 16 38 84 83 78 57 62 21 60 82 28 43 72 52 72
80 67 34 85 82 95 19 69 90 53 96 18 47 44 63 88 61 30 94 44
25 15 92 22 17 31 45 42 94 95 98 41 56 34 54 11 38 38 74 82
75 82 79 73 23 64 77 24 18 40 42 29 97 23 43 96 65 19 53 37
91 32 12 38 23 98 15 55 45 51 46 21 92 47 25 83 44 38 54 23
67 86 21 19 85 38 10 85 47 53 80 53 63 65 42 63 78 50 89 21
50 37 32 66 80 40 97 24 54 28 76 31

My output should display 1000 elements (20 columns x 50 rows) since this would total to 1000 elements. However, I am only getting 992 elements (the last 8 are missing). I increased the array size to 1008 but that doesn't seem like the right solution to the problem.

public class Test {

    public static void main(String[] args) {

        int[] values = new int[1000];

        for (int i = 0; i < values.length; i++) {
            values[i] = (10 + (int) (Math.random() * 89));
        }

        for (int i = 0; i < values.length; i++) {
            if (i % 20 == 0) {
                if (i == 0) {
                    printit(i, values);
                } else {
                    System.out.println();
                    printit(i, values);
                }
            } else
                System.out.print(values[i] + "  ");
        }
    }

    public static void printit(int i, int[] values) {
        System.out.print(values[i] + "  ");
    }
}

I got it! Before, I was not printing the number at the index when i % 20 == 0. I was simply moving to the next index. That's why my output was missing elements.

Output

94 82 16 11 64 16 34 13 93 47 78 83 11 55 67 10 50 96 62 94
95 83 65 17 67 78 62 29 44 74 57 65 21 20 67 35 24 94 89 94
16 91 42 92 65 26 72 55 33 59 82 40 45 86 89 17 60 78 28 44
86 81 26 92 85 93 13 32 83 51 88 83 26 32 42 17 11 93 61 37
34 79 17 49 54 23 66 38 88 91 55 70 35 98 94 43 22 39 70 57
53 17 42 86 95 11 90 72 15 64 80 92 63 18 85 96 75 46 85 34
56 71 92 38 85 14 58 80 86 71 82 11 22 88 48 66 22 60 59 67
65 18 20 55 29 41 28 58 40 35 28 97 45 48 39 22 29 23 93 28
35 86 74 23 78 34 18 50 85 39 13 61 18 12 18 21 73 11 27 18
45 23 22 45 73 77 10 15 26 71 95 46 17 59 19 55 68 91 60 88
12 32 27 63 20 82 85 51 42 72 42 55 27 30 27 24 61 17 74 80
54 44 33 71 52 10 80 58 76 86 65 64 27 49 38 13 63 90 18 70
48 95 62 62 80 82 66 57 91 56 22 83 16 76 48 85 66 84 71 68
44 14 49 55 47 31 62 62 14 28 45 57 70 37 18 23 82 88 32 62
53 90 46 68 40 60 49 51 43 33 96 52 35 93 54 95 59 40 83 70
98 89 78 80 29 53 85 55 62 86 53 66 40 24 13 33 90 87 33 45
18 49 54 45 73 50 79 46 72 38 59 12 84 43 46 85 55 97 13 19
48 74 80 93 43 90 16 84 49 12 81 59 91 23 57 43 92 27 37 25
12 34 24 58 81 58 72 64 71 84 95 46 31 33 25 70 28 32 46 79
83 16 15 86 21 68 67 95 92 81 84 59 66 85 51 45 32 32 63 65
20 64 12 21 41 69 18 20 34 93 52 89 55 43 55 61 85 92 92 62
42 70 79 24 88 49 50 46 25 19 14 51 24 74 19 60 59 38 56 15
29 63 15 86 29 53 80 79 95 93 47 22 80 94 53 47 84 64 34 61
95 44 84 44 33 93 18 42 53 84 35 58 52 47 52 11 78 32 62 20
34 47 80 72 15 61 72 50 12 86 52 13 47 40 62 26 27 21 72 38
24 45 73 79 23 93 89 34 34 27 81 80 94 71 39 64 16 84 33 22
45 58 56 15 14 70 16 39 68 40 56 66 85 36 45 45 18 23 12 44
54 21 96 89 24 83 13 78 72 97 16 47 62 18 60 52 59 33 76 42
16 14 43 36 18 74 41 81 39 81 93 45 56 11 87 84 14 14 24 24
11 25 40 89 41 56 46 32 63 25 53 57 61 68 84 74 18 87 42 94
61 15 30 45 62 17 54 23 88 47 84 67 77 71 12 62 44 15 79 39
83 91 68 68 45 37 16 75 34 26 55 32 26 31 43 54 38 29 26 53
49 69 10 11 95 36 63 18 29 25 81 79 23 90 46 34 39 88 88 68
17 94 18 82 30 11 42 11 12 59 10 88 77 44 68 31 11 98 94 87
55 79 80 16 29 28 24 12 62 37 12 78 19 17 71 81 82 66 62 10
48 42 48 30 96 51 30 16 80 89 68 78 57 68 31 77 32 60 49 36
83 14 82 96 43 28 53 30 78 63 93 95 53 24 35 19 60 66 38 79
20 48 48 91 85 27 14 34 10 65 86 15 46 87 86 69 95 93 91 85
50 49 27 81 60 16 82 73 75 51 62 31 55 80 87 76 43 43 13 15
14 45 48 17 14 90 26 98 79 48 50 42 87 87 69 16 82 51 25 27
19 51 10 23 17 62 44 39 60 93 73 91 36 14 20 31 55 91 56 24
72 31 76 87 14 13 14 51 84 81 14 16 63 56 30 69 79 80 48 97
92 87 31 63 76 89 58 26 72 81 88 24 87 36 94 60 67 26 59 57
59 78 59 17 70 54 37 19 83 89 10 10 74 18 75 70 57 61 19 29
95 42 44 71 33 34 38 69 79 48 36 66 42 66 48 23 73 24 70 14
47 43 38 85 96 53 72 66 24 65 30 48 64 44 34 33 59 20 12 68
28 91 90 27 56 87 46 66 70 39 32 63 73 41 82 42 74 11 87 28
14 27 88 18 77 83 34 71 23 86 39 69 62 17 47 25 80 12 88 86
15 34 93 92 96 57 42 46 50 32 18 10 33 11 40 34 39 47 23 73
58 69 85 29 27 37 42 83 38 85 82 85 16 43 36 14 16 44 75 67

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM