1,遍历二维数组:foreach(a[ i , j ]);
2,仅遍历一维数组:foreach(a[ i ] [ j ]);
仅遍历一维j, 另i需要在外部定义,否则报错未定义。
1 module tb();
2 int aa[3][4]='{'{1,2,3,4},'{5,6,7,8},'{9,10,11,12}};
3
4 initial begin
5 foreach(aa[i,j])begin //遍历二维
6 $display("[i,j] [%0d,%0d]=%0d",i,j,aa[i][j]);
7 end
8 for(int i=0;i<3;i++)begin
9 foreach(aa[i][j])begin //仅遍历一维j, 另i需要在外部定义,否则报错未定义
10 $display("[i][j] [%0d,%0d]=%0d",i,j,aa[i][j]);
11 end
12 end
13 end
14 endmodule
3,遍历二维数组:foreach(a[ i , j ]),时,break仅能停止二维 j 遍历,一维 i 继续遍历
1 module tb();
2 int aa[3][4]='{'{1,2,3,4},'{5,6,7,8},'{9,10,11,12}};
3
4 initial begin
5 foreach(aa[i,j])begin //遍历二维
6 $display("[i,j] [%0d,%0d]=%0d",i,j,aa[i][j]);
7 if(i==1)break; //遍历二维数组时,break只能停止当前j余下值,i会继续遍历余下值
8 end
9 for(int i=0;i<3;i++)begin
10 foreach(aa[i][j])begin //仅遍历一维j, 另i需要在外部定义,否则报错未定义
11 $display("[i][j] [%0d,%0d]=%0d",i,j,aa[i][j]);
12 end
13 end
14 end
15 endmodule