欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

switch中break、“悬挂”else

程序员文章站 2024-01-05 10:10:52
...

switch中break

switch的某个case中没有break,程序会顺序向下执行;既是优势所在,也是一大弱点;遗漏某个case的break,造成一些难以理解的程序行为。

#include <iostream>
using namespace std;

int main(void) {
	int color = 2;
	switch (color) {
		case 1:
			cout<< "red" << endl;
			break;
		case 2:
			cout<< "yellow" << endl;
			/* 此处没有 break 语句 */
		default:
			cout<< "blue" << endl;
			break;
	}
	
}

switch中break、“悬挂”else

“悬挂”else

就是 if-else 省略 { },else 始终与同一对括号内最近的未匹配的 if 结合。所以连续省略{ }后,不能一眼清晰查看,也会造成程序难以理解。一般在程序规范中是不允许省略 if 后的 { }

#include <iostream>
using namespace std;

int main(void) {
	int x = 1;
	int y = 0;
	int z = 0;
	
	if (x==0)
		if (y == 0)
			cout << "y==0" << endl;
	else {
		z= x+y;
		cout << "z = " << z << endl;
	}
}

switch中break、“悬挂”else

#include <iostream>
using namespace std;

int main(void) {
	int x = 1;
	int y = 0;
	int z = 0;
	
	if (x==0) {
		if (y == 0)
			cout << "y==0" << endl;
	} else {
		z= x+y;
		cout << "z = " << z << endl;
	}
}

switch中break、“悬挂”else

相关标签: C C++ c/c++

上一篇:

下一篇: