我想知道如何只用IF,WHILE或FOR(没有switch / case语句)编写以下代码?
if(ulDataBuf!=15 && ulData==15)
{
switch(ulDataBuf){
case 14:
timeON+=500000;
break;
case 13:
if(timeON!=0) timeON-=500000;
break;
case 11:
timeOFF+=500000;
break;
case 7:
if(timeOFF!=0) timeOFF-=500000;
break;
}
}
答案 0 :(得分:2)
基本上用if语句替换第一个case,用if-else语句替换其余的case。您将拥有如下结构:
if ( if(ulDataBuf!=15 && ulData==15) ) {
if ( 14 == ulDataBuf ) {
timeON+=500000;
} else if ( 13 == ulDataBuf ) {
if(timeON!=0) timeON-=500000;
}
}
等等......
答案 1 :(得分:2)
if(ulDataBuf!=15 && ulData==15)
{
if(ulDatabuf == 14)
{
timeON+=500000;
}
else if(ulDatabuf == 13)
{
if(timeON!=0)
{
timeON-=500000;
}
}
else if(ulDatabuf == 11)
{
timeOFF+=500000;
}
else if(ulDatabuf == 7)
{
if(timeOFF!=0)
{
timeOFF-=500000;
}
}
}
答案 2 :(得分:0)
以上答案完美地回答了你的问题 - 但我有自己的问题:你为什么要这样做?通常当编译的switch语句归结为汇编程序中的跳转表时,而多个if-else分支可以使生成的指令数量增加。