int main(void)
{
int id;
scanf_s("%d",&id);
switch(id)
{
case 2:
printf("John\n");
break;
case 13:
printf("Mary\n");
break;
case 16 :
printf("Amy\n");
break;
default :
printf("not found");
break;
}
return 1;
}
switch case 當case是某個值的時候會直接把流程執行到那里,只進行一次判斷。
而多重else if,else if的層次越深,需要判斷的次數就越深。如果判斷條件是比較復雜的,那么就會影響性能。
就上面那個switch case 用else if也能實現
int main(void)
{
int id;
scanf_s("%d",&id);
if (id == 2)
{
printf("John");
}
else if(id==13){
printf("Mary");
}
else if (id == 16)
{
printf("Amy");
}
else
{
printf("not found");
}
return 1;
}
如果用戶輸入的是0,那么需要經過id是否等於2這個判斷,id是否等於13這個判斷,id是否等於16這個判斷,一共三個判斷。
每次判斷都是要耗費性能的,else if的層次越深 耗費的性能就越多。
