当前位置: 首页 > 知识库问答 >
问题:

了解嵌套for循环的工作原理

凌运恒
2023-03-14

我不明白嵌套for循环是如何工作的。正在执行升序程序,请逐步解释它的工作原理

class Ascending {

  public static void main(String args[]) {

    int temp;
    int a[] = {20, 10, 80, 70};
    for (int i = 0; i < 4; i++) {
      System.out.println(a[i]);
    }
    for (int i = 0; i < 4; i++) {
      for (int j = i + 1; j < 4; j++) {
        if (a[i] > a[j]) {
          temp = a[i];
          a[i] = a[j];
          a[j] = temp;
        }
      }
    }
    System.out.println("\n after:");
    for (int i = 0; i < 4; i++) {
      System.out.println(a[i]);
    }
  }
}

输出:

20
10
80
70

之后:

10
20
70
80

共有1个答案

袁羽
2023-03-14

套筒循环的工作原理。

这很简单,一个for循环定义如下:

for(init;condition;increment)

  • init:在开始时执行一次
  • 条件:每次执行前检查(比如一段时间)
  • 增量:将在循环中的代码之后完成

在这里,有一个循环,

for (int i = 0; i < 4; i++) {
    // code 
}

这将与

int i = 0;
while(i < 4){
    // code
    i++;
}

如果你有嵌套循环,想法是一样的,在外部循环可以增加并再次检查他的条件之前,内部循环需要执行条件为真的次数。

for (int i = 0; i < 4; i++) { //loop A
    for (int j = i + 1; j < 4; j++) { //loop B
         // code
    }
}

循环A将以< code>i = 0开始,然后循环B将以< code>j = i = 0开始。代码将一直执行到< code>j =

条件仍然为真,因此循环将执行他的代码,循环B将以j=i=1开头。

再一次…直到循环A的条件为假。

 类似资料:
  • 和其他编程语言一样, Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。 嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是

  • 我对确定上述代码的BigO有点困惑。如果在最外层的循环中,则为(int x=1;x 然而,考虑到最外层循环迭代n 2次,这会改变bigO还是加法常数无关紧要的规则?最后,如果最内层循环迭代n 2次而不是n,会改变什么吗? 非常感谢。

  • 我有一个嵌套的for循环,但是它会减慢一点处理速度,我如何才能使嵌套循环高效。我需要的是对于外循环的每个值,内循环继续其所有迭代。但是,我不认为它会像两个嵌套循环那样影响计算。我的第二个问题是,循环会影响速度还是会支持我的现象? 我的代码:

  • 对Java来说很新鲜,我在大学的一个入门班做一个项目。我正在尝试做一个方法,在String数组中搜索输入的状态并返回索引。如果用户输入不在数组中的查询,我希望它要求一个新的状态来搜索。我的例外是说“变量statePotion可能尚未初始化。”下面是代码。 提前谢谢!

  • 我想在一个并行外部循环中运行一个包含for循环(应该并行运行)的函数。因此看起来如下所示: 给定上面的代码,我希望在函数中为循环创建5个并行线程,并且希望这5个线程中的每个线程创建另一个线程来运行自己的并行for循环。

  • 问题内容: 我不知道这是否是一个愚蠢的问题,但是我需要在不使用递归的情况下动态更改for循环的数量。 例如,如果n = 3,则需要3个嵌套的for循环。 如果n = 5: 有没有什么方法可以做到这一点而无需递归?另一个问题:Java中多重调度的用途是什么?我正在尝试用一种方法编写代码,它应该在参数的不同情况下运行不同的事件。否,如果声明/三元经营者/案件。 注意:我只能使用一种方法(部分问题),并