`timescale 1ns/1ns
module tb_led;
integer array[10],sum,j;
initial begin
for(int i=0;i<10;i++)
array[i] = i+1;
sum = array[9];
j = 8;
do
sum=sum+array[j];
while(j--);
$display("sum = %4d",sum);
end
endmodule
仿真结果为: sum = 55
而把程序中的 while(j--) 改为 while(--j) 后,仿真结果变成了 sum = 54。
do……while 是先执行再判断,所以 j-- 是先判断 j 的值,j 再减一。--j 是 j 先减一,再判断减一后的值,和C语言中用法相同。