【问题标题】:how does the break statement works in the below codebreak 语句在下面的代码中是如何工作的
【发布时间】:2022-01-03 05:02:39
【问题描述】:
class Solution {
  public int heightChecker(int[] arr) {
    int count=0;
    int n=arr.length;
    int[] arr1=new int[101];
    for(int i=0;i<n;i++) {
      arr1[arr[i]]++;
    }
    for(int i=0;i<n;i++) {
      for(int j=1;j<101;j++) {
        if(arr1[j]!=0) {
          if(arr[i]!=j) {
            count++;
          }
          arr1[j]--;
          break;
        }
      }
    }
    return count;
  }
}

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: java arrays sorting


【解决方案1】:

break;,单独(与看起来像 break someName; 并且有很大不同的标记中断相比)将破坏 最近 可破坏实体。 fordowhileswitch 是可直接破坏的(并且任何大括号都可以使用标记的分隔符破坏,但这不是标记的分隔符)。

最近的 for 循环(例如,查看 break 所在的大括号对;找到与可破坏实体一起使用的最快的那个)是 for (int j 循环(不是 if (arr[i] != j)一 - if 不是无标签易碎的)。 break 将打破该循环。

意思是,代码将立即跳出它所在的位置,跳过所有需要的内容,以便我们在 for 循环之后结束。

所以,break 语句将完全跳出for (int j= 块,然后将执行下一件事。这是} - 与for (int i = 0 语句一起使用的右大括号,因此for循环'循环':i被递增(因为该循环的递增部分是i++,然后i &lt; n被执行. 如果它是真的,我们跳回到外部for循环的顶部。如果它是假的,我们会失败,并运行下一行(这将是return count;)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2021-04-11
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    相关资源
    最近更新 更多