Java 理解嵌套循环

Java 理解嵌套循环,java,Java,我对Java编程非常熟悉,在我所学的课程中,我在其中一个练习中“作弊”,并尝试了逆向工程解决方案。然而,我不太明白最后一部分是如何工作的。我试着把它写在纸上,试着找出一个解决方案,但还是弄糊涂了 目标是从键盘上写下20个数字并按降序显示。有人能帮我查看代码最后一部分中for循环和嵌套for循环的执行流程吗 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; imp

我对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;
        }
      }
    }
  }
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.util.array;
导入java.util.Collections;
/*降序*/
公共类解决方案{
公共静态void main(字符串[]args)引发异常{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(System.in));
int[]数组=新的int[20];
对于(int i=0;i<20;i++){
数组[i]=Integer.parseInt(reader.readLine());
}
排序(数组);
对于(整数x:数组){
系统输出println(x);
}
}
公共静态无效排序(int[]数组){
对于(int j=0;j
解决方案:

数组。排序(数组)

对于(inti=(20-1);i>=0;i--){

System.out.print(数组[i]+“”)

}`

System.out.println()



20 19 18 17 16 15 14 12 11 10 9 8 7 6 5 4 3 2 1

这是一个冒泡排序算法的实现。它对数组进行排序。使用调试器逐步完成。不清楚“反向工程”是什么意思。。。如果你不明白你在反转什么,那么你是如何正确地写出它的?@CobaltGecko当“更简单”的解决方案是一个黑盒子时,OP将如何理解发生了什么
Arrays.sort()
完全掩盖了所有的实现细节——对于隐藏的内容没有任何线索。