多重if else和switch case的區別


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的層次越深 耗費的性能就越多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM