如何检查数组并从中计算数字?

时间:2017-10-05 02:41:11

标签: java arrays

我有一个阵列,里面装满了学生的标记。但是我不能显示数组内容,因为我一直在接收参考代码。我现在正在尝试检查数组中的每个索引,并将其与40的通过标记进行比较。当我使用if语句时,我永远不会打印[i],所有帮助将不胜感激。

public class Exammarks {
    public static void main(String[] args) {
        int i = 0;
        int [] studentmarks = new int[] {45,60,70,21,95,35,83,80,5,41,40,25};
        for(i=1;i < studentmarks.length; i++); {
                if (studentmarks[i] < 40)
                       System.out.println(studentmarks[i]);
        }

    }

}

3 个答案:

答案 0 :(得分:3)

您可以通过从数组中创建Stream,过滤掉小于40的数字,并在需要时将流转换回数组,或者只打印结果,从而更轻松地完成此操作。例如:

int [] studentmarks = new int[] {45,60,70,21,95,35,83,80,5,41,40,25};
Arrays.stream(studentmarks)
      .filter(m -> m < 40)
      .toArray();
// [21, 35, 5, 25]

或者如果您只需要打印结果:

Arrays.stream(studentmarks)
      .filter(m -> m < 40)
      .forEach(System.out::println);

答案 1 :(得分:1)

尝试用于每个循环

int [] studentmarks = new int[] {45,60,70,21,95,35,83,80,5,41,40,25};
System.out.println("studentmarks size = " + studentmarks.length);
for(int marks : studentmarks) {
      System.out.println("marks = " + marks); 
      if (marks < 40)
           System.out.println("marks less than 40 = " + marks);

}

答案 2 :(得分:1)

Array索引从0开始,而您已从for初始化1循环。

 int [] studentmarks = {45,60,70,21,95,35,83,80,5,41,40,25};
 for(i=0;i < studentmarks.length; i++) 
 {
    if (studentmarks[i] < 40)
    {
       System.out.println(studentmarks[i]);
    }
 }

此外,;末尾有for(i=1;i < studentmarks.length; i++);,这意味着for循环的范围在那里以及代码的一部分以下{{}} 1}}循环范围。

for