我有一个阵列,里面装满了学生的标记。但是我不能显示数组内容,因为我一直在接收参考代码。我现在正在尝试检查数组中的每个索引,并将其与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]);
}
}
}
答案 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