条件选择语句if else switch

时间:2021-10-16 21:54:20

if else与if elseif的区别

单路(if)和多路(if else)中多个If条件语句会全部执行一遍再将结果显示(影响效率)


	int a=4;
	if (a == 4)
	{
		printf("a=4");  //尽管此时已经满足条件,但是之后的if还会进行判断
	}
	if (a==1)
	{
		printf("a=1");
	}
	if (a == 2)
	{
		printf("a=2");
	}
	if (a == 3)
	{
		printf("a=3");
	}	


多路分支(if elseif) 相当于if嵌套在else中,满足其中一个条件便不再执行之后的判断(提高效率节省时间)

	int a=4;
	if (a == 4)
	{
		printf("a=4");  
	}
	else if (a == 3)
	{
		printf("a=3");
	}
	else if (a == 2)
	{
		printf("a=2");
	}
	else if (a == 1)
	{
		printf("a=1");
	}
	else
	{
		printf("找不到符合条件");
	}


switch结构

	int choice;
	printf("请输入中奖号码:");
	scanf("%d", &choice);
	switch (choice) //choice 只能是整型或者字符型
	{
	case 5:  //优化处理 将概率高的情况放在判断的顶端
		printf("谢谢惠顾\n");
		break;
	case 4:  // case后接常量或者常量表达式(如1 + 9) 但是case之间不能重复
		printf("恭喜你获得纪念品\n");
		break;
	case 3:
		printf("恭喜你获得三等奖\n");
		break;
	case 2:
		printf("恭喜你获得二等奖\n");
		break;
	case 1:  
		printf("恭喜你获得一等奖\n");
		break;  
	default:
		printf("空白\n");
		break;
	}


小节:

1.break 只出现在循环和switch中

2.如果没有break switch不再匹配,直接往下执行,直到遇到break default

3.if else if 常常用来表达范围的选择  switch常常用来表达点的选择

4.优化:
    无论 if else if还是switch 用的都是长方形版本(非梯形版本),所有的条件处于水平状态
    最常用的条件选择放到最前,就是所谓的优化