今天偶爾做了一個java題,直接被鄙視了。
貼代碼
package 考試;public class Demo {public static void main(String[] args) {int i = 10;switch (i) {default:System.out.println("default");case 0:System.out.println("0");break;case 1:System.out.println("1");case 2:System.out.println("2");}}}
default0
結果是這個,這樣弄到switch的運行機制了,switch無論怎麼樣寫,都是先判斷case中的數字,所以無論default寫在哪裡都是先執行判斷case語句。
重點在後面,如果case中有這個值,那麼直接執行這個case中的語句。如果沒有這個值,系統才會找default。執行default,一直執行到遇到break。所以很不幸我C語言沒學好呀。。。太悲劇了,寒假回去惡補一下。
還有一個陷阱是&&,||與&,|,前者具有短路功能,後者沒有。我記反了,所以考試也出錯了。。
還有一個陷阱是java字串數組,雖然String是一個類,但是這個類比較特殊,可以這樣使用
String a[] = { "", "", "", "", "" };//正確String aa[] = new String[5];//也是正確的aa[0] = "123";System.out.println(aa[0]);
但是對於自訂的類的話,與String類就有很大不同
package 考試;import b.Student;public class Demo {public static void main(String[] args) {Student s[] = new Student[5];s[0].setName("aaa");System.out.println(s[0].getName());}}
這樣直接使用會出現null 指標異常。
Exception in thread "main" java.lang.NullPointerExceptionat 考試.Demo.main(Demo.java:8)
個人覺得C和java真的是博大精深呀,東西太多了。值得好好研究。
還有一個小陷阱
數組的長度,都是.length
字串的長度都是.length()
list的大小是.size()