keil总出现这个问题disancike.c(50): error C141: syntax error near 'if'

#include <REGX51.H>

void delay_ms (unsigned int t) //延迟函数
{
unsigned char j;
while(t--)
{
for(j=0;j<125;j++)
{;}
}
}

void main(void)
{
unsigned char num=0;
while (1)
{
switch (num)
{
case 0:
P0=0x01 ; //P0.0=0,1111 1110
break;
case 1:
P0=
(1<<1) ; //P0.1=0,1111 1101
break;
case 2:
P0=(1<<2) ; //P0.1=0,1111 1101
break;
case 3:
P0=
(1<<3) ; //P0.1=0,1111 1101
break;
case 4:
P0=(1<<4) ; //P0.1=0,1111 1101
break;
case 5:
P0=
(1<<5) ; //P0.1=0,1111 1101
break;
case 6:
P0=(1<<6) ; //P0.1=0,1111 1101
break;
case 7:
P0=
(1<<7) ; //P0.1=0,1111 1101
break;
default:
P0=0xff; //全灭
break;
}
delay_ms(500)
if(num<7) num++;
else num=0;

}
}

img