java - 了解嵌套的 for 循环
问题描述
我对 Java 编程非常熟悉,并且在我正在学习的课程中,我在其中一个练习中“作弊”并尝试逆向工程解决方案。但是,我不太明白最后一部分是如何工作的。我尝试在纸上运行它,试图解决一个解决方案,但感到困惑。
目标是从键盘输入 20 个数字并按降序显示。有人可以帮我查看代码最后一部分中for
循环和嵌套循环的执行流程吗?for
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
/* In decreasing order */
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[20];
for (int i = 0; i < 20; i++) {
array[i] = Integer.parseInt(reader.readLine());
}
sort(array);
for (Integer x: array) {
System.out.println(x);
}
}
public static void sort(int[] array) {
for (int j = 0; j < array.length - 1; j++) {
for (int k = j + 1; k < array.length; k++) {
if (array[j] < array[k]) {
int l = array[j];
array[j] = array[k];
array[k] = l;
}
}
}
}
}
解决方案
解决方案:
Arrays.sort(array);
for(int i=(20-1);i>=0;i--){
System.out.print(array[i] + "");
}`
System.out.println();
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
推荐阅读
- php - 用数组搜索数组
- sql - Exporting SQL data via BCP delimitted HL7
- shell - shell命令的执行顺序
- forms - 如何将 Google 表单中的复选框网格响应作为单独的列输出到 Google 表格(加上计算时区)?
- android - 在这个计算器中哪个布局应该替换 LinearLayout
- amazon-web-services - 谷歌云物联网是否使设备能够像 aws greengrass 那样进行本地通信?
- javascript - 如何使用 XPath 使用非标记文本在 div 中选择 div?
- python - Scipy 线性回归不包括`intercept_stderr` 属性
- oracle - 如何在一次查询中获取所有者的名称、他们的对象名称和该对象的大小?
- php - 在带有数组的 IN 语句之后,在 WHERE 语句中使用更多占位符