编辑问题,以包括预期行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答问题。
我的程序显示用户反向输入的10位数字,但我希望它仅反向显示偶数。我尝试通过编写if statemnt数字[i]%2=0
来做到这一点,但它不起作用。这是我的代码:
Scanner input = new Scanner (System.in);
int[] numbers = new int[10];
System.out.println("Enter "+numbers.length+" integer numbers: ");
for (int i = 0; i < numbers.length; i++) {
numbers[i] = input.nextInt();
}
System.out.println("\nThe reverse of entered even numbers: ");
for (int i = numbers.length-1; i >=0; i--) {
System.out.print(numbers[i] + " ");
} System.out.print("\n"); }
你所描述的尝试应该已经奏效,即:
for (int i = numbers.length-1; i >=0; i--) {
if (numbers[i] % 2 == 0) {
System.out.print(numbers[i] + " ");
}
}
对所发生事情的一种解释是,您实际上执行了此if
语句:
if (numbers[i]%2=0) { ... }
这可能会失败,因为你是在赋值,而不是检查等式。
int[] numbers = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Arrays.stream(numbers)
.boxed()
.sorted(Collections.reverseOrder())
.filter(i -> i % 2 == 0)
.forEach(System.out::println);
更新:< br >单行输出,中间有空格:
int[] numbers = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
String output = Arrays.stream(numbers)
.boxed()
.sorted(Collections.reverseOrder())
.filter(i -> i % 2 == 0)
.map(String::valueOf)
.collect(Collectors.joining(" "));
System.out.println(output);
使用语句更正它
if (numbers[numbers.length - 1] % 2 == 0) {
//.....
}