错题笔记
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
== 比较基本数据类型变量,比较的是数值是否相等, 如果比较的是引用类型,只比较内存的地址是否相等

浙公网安备 33010602011771号