c语言case跳出循环,红外遥控实验,主函数中switch case语句中用了while循环,如何在进入循环后,按下其它按键可跳出循环执行其它按键的代码?...

while(1)

{

key=Remote_Scan();

if(key)

{

//                        LCD_ShowNum(86,130,key,3,16);

//                        LCD_ShowNum(86,150,RmtCnt,3,16);

switch(key)

{

case 0:str="ERROR";break;

case 162:str="POWER";break;

case 98:str="UP";break;

case 2:str="PLAY";

printf("%s

",str);

while(key==2)

{

LED0=0;

LED1=1;

delay_ms(300);

LED0=1;

LED1=0;

delay_ms(300);

}

break;

case 226:str="ALIENTEK";break;

case 194:str="RIGHT";break;

case 34:str="LEFT";break;

case 224:str="VOL-";break;

case 168:str="DOWN";break;

case 144:str="VOL+";break;

case 104:str="1";

printf("%s

",str);

while(key==104)

{

BEEP=1;

delay_ms(300);

BEEP=0;

delay_ms(300);

}

break;

case 152:str="2";break;

case 176:str="3";break;

case 48:str="4";break;

case 24:str="5";break;

case 122:str="6";break;

case 16:str="7";break;

case 56:str="8";break;

case 90:str="9";break;

case 66:str="0";break;

case 82:str="DELETE";break;

}

//                        LCD_Fill(86,170,116+8*8,170+16,WHITE);

//                        LCD_ShowString(86,170,200,16,16,str);

delay_ms(350);

printf("%s

",str);

delay_ms(150);

str=NULL;

}

else

delay_ms(10);

t++;

if(t==20)

{

t=0;

LED0=!LED0;

}

}

while(1)

{

key=Remote_Scan();

if(key)

{

//                        LCD_ShowNum(86,130,key,3,16);

//                        LCD_ShowNum(86,150,RmtCnt,3,16);

switch(key)

{

case 0:str="ERROR";break;

case 162:str="POWER";break;

case 98:str="UP";break;

case 2:str="PLAY";

printf("%s

",str);

while(key==2)

{

LED0=0;

LED1=1;

delay_ms(300);

LED0=1;

LED1=0;

delay_ms(300);

}

break;

case 226:str="ALIENTEK";break;

case 194:str="RIGHT";break;

case 34:str="LEFT";break;

case 224:str="VOL-";break;

case 168:str="DOWN";break;

case 144:str="VOL+";break;

case 104:str="1";

printf("%s

",str);

while(key==104)

{

BEEP=1;

delay_ms(300);

BEEP=0;

delay_ms(300);

}

break;

case 152:str="2";break;

case 176:str="3";break;

case 48:str="4";break;

case 24:str="5";break;

case 122:str="6";break;

case 16:str="7";break;

case 56:str="8";break;

case 90:str="9";break;

case 66:str="0";break;

case 82:str="DELETE";break;

}

//                        LCD_Fill(86,170,116+8*8,170+16,WHITE);

//                        LCD_ShowString(86,170,200,16,16,str);

delay_ms(350);

printf("%s

",str);

delay_ms(150);

str=NULL;

}

else

delay_ms(10);

t++;

if(t==20)

{

t=0;

LED0=!LED0;

}

}