 # Need help to figure out why this loop does not stop running

I am running some code that contains the following lines of code. It keeps running and running without stopping. Can someone help me to figure out why?

```do while K<=Ku;
/* implied VAR(1) estimates */

b_lr = b_r*(1-(rho^K)*(phi^K))/(1-rho*phi);

b_ld = b_d*(1-(rho^K)*(phi^K))/(1-rho*phi);

b_ldp = (rho^K)*(phi^K);

ident = b_lr-b_ld+b_ldp;

aux1 = -K*b_r*(rho^K)*(phi^(K-1))*(1-rho*phi)+rho*b_r*(1-(rho^K)*(phi^K));

aux2 = -K*b_d*(rho^K)*(phi^(K-1))*(1-rho*phi)+rho*b_d*(1-(rho^K)*(phi^K));

aux3 = (1-rho*phi)^2;

aux_br = aux1/aux3;

aux_bd = aux2/aux3;

jacob = ((1-(rho^K)*(phi^K))/(1-rho*phi))~0~aux_br|0~((1-(rho^K)*(phi^K))/(1-rho*phi))~aux_bd|0~0~K*(rho^K)*(phi^(K-1));

varcov = jacob*avcovb*jacob';

tstat1 = (b_lr|b_ld|b_ldp)./sqrt(diag(varcov));

tstat2 = ((b_lr-1)|(b_ld+1)|(b_ldp-1))./sqrt(diag(varcov));

b_lrk[K,1] = b_lr;

b_ldk[K,1] = b_ld;

b_ldpk[K,1] = b_ldp;

identk[K,1] = ident;

t_lrk1[K,1] = tstat1[1,1];

t_ldk1[K,1] = tstat1[2,1];

t_ldpk1[K,1] = tstat1[3,1];

t_lrk2[K,1] = tstat2[1,1];

t_ldk2[K,1] = tstat2[2,1];

t_ldpk2[K,1] = tstat2[3,1];

Endo;
```

0

The loop in your questions starts out with:

```do while K <= Ku;
```

this means that the loop will keep running until K is greater than Ku. The problem is that neither K, nor Ku change value during the loop. So if K starts the loop with a value less than Ku, it will forever have a value less than Ku. The code inside the loops needs a line to increment K. If you want to iterate over each integer from K to Ku + 1, then you should add the line:

```K = K + 1;
```

just before the endo statement. Alternatively, if you changed the do while statement to a for loop, you would not have to add the K = K + 1 line. As an example, the loops below are equivalent:

```k = 1;
ku = 20;
do while k <= ku;
print k;
k = k + 1;
endo;
```
```k = 1;
ku = 20;
for k(1, ku, 1);
print k;
endfor;
``` aptech

1,393

### Have a Specific Question?

Get a real answer from a real person

### Need Support?

Get help from our friendly experts.