错题笔记

break错题总结

给定一下程序段:

int i = 0,j = -1;
switch(i) {
    case 0:j=1;
    case 1:j=2;
    case 2:j=2;
    default:j=5;   
}
System.out.println("j=" + j)

编译之后,正确的是(D)
A. j=-1 B、j =1 C、j=2 D.j= 5

解释:如果没有break,会直接执行到代码块结尾,default后不能有break;

1.普通switch-case语句

int main(){
	int x = 1;
	switch (x)
	{
	case 1:
		cout = 1;
		break;
	case 2:
		cout = 2;
		break:
	case 3:
		cout = 3;
		break;
	default:
		cout = "default";
	}
 System.out.println(cout);
	return 0;
 
}

x=1则输出1,x=2则输出2,x=3则输出3,x=其他则输出default

2、去掉break

int main(){
	int x = 1;
	switch (x)
	{
	case 1:
		cout = 1;
		//break;
	case 2:
		cout = 2;
		//break:
	case 3:
		cout = 3;
		//break;
	default:
		cout = "default";
	}
 System.out.println(cout);
	return 0;
 
}

输出123default,没break则一直执行,default也会执行

3、没有break且default位置改变

switch (x){
	default:
		cout = "default";
	case 1:
		cout = 1;
		//break;
	case 2:
		cout = 2;
		//break:
	case 3:
		cout = 3;
		//break;
	System.out.println(cout);
	}

当x=1,输出123,当 x=其他 时,会输出 default 和 123,

switch (x)
	{
	
	case 1:
		cout = 1;
		//break;
	default:
		cout = "default";
	case 2:
		cout = 2;
		//break:
	case 3:
		cout = 3;
		//break;
	
	}

当x=1,输出1default23
x=2,输出23

x=5,输出default23

即只要没有break都会执行到块结尾,default位置不影响case语句

-----------------------------------------------------------------------------------------------

equals 和 == 比较总结

"mypido".equals(new String("mypido"))的返回结果是:( true )

解释:在比较两个引用类型的变量时, equals首先比较的是内存地址,地址正确返回true.如果两个变量的地址不相等,再比较两个变量的变量值,如果正确也返回true

== 比较基本数据类型变量,比较的是数值是否相等, 如果比较的是引用类型,只比较内存的地址是否相等

posted @ 2020-11-23 10:49  任苗苗  阅读(95)  评论(0)    收藏  举报