Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环的Java跟踪_Java_Loops_For Loop_Trace - Fatal编程技术网

使用for循环的Java跟踪

使用for循环的Java跟踪,java,loops,for-loop,trace,Java,Loops,For Loop,Trace,我试着追踪这一点,但发现很难弄清楚到底发生了什么。我也试过调试,但没有成功 public class bob { public static void main(String[] args) { int[][] numbers = {{1, 0}, {4, 1}, {2, 3}, {1, 4}}; int[] frequencies = new int[5]; for (int row = 0; row < numbers.length; row++)

我试着追踪这一点,但发现很难弄清楚到底发生了什么。我也试过调试,但没有成功

public class bob {

  public static void main(String[] args) {

    int[][] numbers = {{1, 0}, {4, 1}, {2, 3}, {1, 4}};
    int[] frequencies = new int[5];

    for (int row = 0; row < numbers.length; row++)
      for (int col = 0; col < numbers[row].length; col++) {
        frequencies[numbers[row][col]]++;
      }
    for (int i = 0; i < frequencies.length; i++)
      System.out.print(frequencies[i] + " ");
  }
}
公共类bob{
公共静态void main(字符串[]args){
int[][]数={{1,0},{4,1},{2,3},{1,4};
int[]频率=新int[5];
for(int row=0;row
我的打印输出是
1,4,4,1
,但eclipse给了我
1,3,1,1,2
如果有人能追踪到第一部分,我就可以追踪剩下的部分了。任何帮助都将不胜感激


谢谢大家!

您的打印输出不应该是
1,4,4,1
,因为您在频率上循环了5次

1,3,1,1,2
是正确的输出


我建议您为循环
(行)的外部
添加大括号,因为如果在内部循环之后添加代码,它将不会成为主循环的一部分。

您首先初始化
频率
,将其作为值为{0,0,0,0,0}的
int的默认数组

在循环中迭代时,可以使用
数字
数组提供的索引访问此默认数组,然后以
频率[数字[行][col]]
递增每个int。因此,在第一次通过时,您将把
频率的第一个元素增加1;在下一个过程中,您将把
频率的第0个元素增加1


因此,在迭代结束时,
frequencies
包含
numbers
中每个特定数字的频率,从0到4,从而生成一个{1,3,1,1,2}的
frequencies
数组。很有趣的事情,一旦你做了,就很简单!希望有帮助

Eclipse应该有一个调试器。使用它有什么问题?RE:“我的打印输出是1,4,4,1,但eclipse给了我1,3,1,1,2”这是什么意思?有什么问题吗?我试过用它,但好像迷路了。谢谢你的回复。至于你的代码——它是一个嵌套的for循环,基本上它迭代每个元素的数字,并用当前索引增加元素的频率。因此,它输出1,3,1,1,2也就不足为奇了。作为一种良好的实践,您应该始终在for/if/while(等)中添加大括号。如果没有它,你只会让它更容易出错,更难阅读。非常感谢你,这让它更有意义,也许我只是需要休息一下。我不知道为什么我会头昏脑胀。现在我看到了,这就像是在说废话!再次感谢大家和莱奥斯诺:没问题,很荣幸!