switch 表示的就是多选一逻辑,不存在任何“顺序”的概念,所有的case语句同等地位如果可能的话还可以实现并行判断。所以switch case在设计的时候case语句就只能跟随常量,而且不能重复,如果case语句可以允许函数返回值得话,函数返回值可能出现多个相同的结果导致逻辑出错。
if elseif elseif else结构具有很强的顺序性,所以在有多个if或elseif成立的时候靠前的语句将会执行而后面的语句不执行。这种逻辑特点可以轻松的进行带有优先级的判断。当有多个符合条件的时候靠前的优先级高。适用场景举例:我读取了一个数据,可能是数也可能是字符。如果是数的话我先赋值给变量a,如果a已经被初始化了我就给b,b被初始化了我就给c,以此类推。这种先后以及“管道”概念,动态填充。伪代码如下:
if(type==NUM)
{
if(a==0)
{
a=data;
}
else if(b==0)
{
b=data;
}
else if(c==0)
{
c=data;
}
}
else
{
}