錯題筆記
阿新 • • 發佈:2020-11-23
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
== 比較基本資料型別變數,比較的是數值是否相等, 如果比較的是引用型別,只比較記憶體的地址是否相等