#M8211. 分支结构

分支结构

选择结构


选择结构是指根据判断条件的结果来控制程序的执行流程。需要使用条件语句:if语句

1. if 语句


条件语句可以表示:如果...,否则... 的含义。

if (条件一){
	//动作一
}
else{
	//动作二
}

以上条件语句 if...else... 的含义为:如果条件一为真做动作一,否则做动作二。

if (条件一){
	//动作一
}
else if (条件二){
	//动作二
}
else{
	//动作三
}

以上条件语句 if... else if ... else ... 的含义为:如果条件一为真做动作一,否则如果条件二为真做动作二,否则做动作三。

此外条件语句之间可以进行嵌套:

if (条件1){
	if (条件2){
		//动作
	}
}

以上条件语句的含义为:如果条件一和条件二都为真则执行动作,否则什么都不做。



2. switch...case... 语句


同样的,switch...case...语句也是一种条件语句,常用于分支很多的情况。

switch (条件语句){
	case 标签1:
		动作1;
	case 标签2:
		动作2;
	default:
		动作3;
}

特殊的,条件语句应为整数类型表达式、整型变量或整型常量。标签必须为整数类型的常量。当执行switch语句时,根据条件语句的结果选择相对应的标签,从标签处开始执行动作。default是指当所有标签都不满足时,我们执行default的内容。

int b = 3;
switch (b){
	case 1:
		b = b * -1;
	case 3:
		b++;
	default:
		b = b / 2;
}
printf("%d", b); // 此时输出为 2

以上程序会输出 2,执行了标签值为 3 和 default 里面的语句。当在以上程序中加入 break 语句,程序的输出会发生变化,以下程序只会执行一个动作。

int b = 3;
switch (b){
	case 1:
		b = b * -1;
		break;
	case 3:
		b++;
		break;
	default:
		b = b / 2;
		break;
}
printf("%d", b); // 此时输出为 4