今天學(xué)習(xí)時,發(fā)現(xiàn)了幾個以前的知識漏洞,附在下邊:
/*******************************************************************************
?* 程序說明: 在表達式中容易被忽視,容易出錯的幾個小知識點
?* 編寫者:? 陳貴波
?* 日期:?? 2007-10-02 — 2007-10-02
?******************************************************************************/
public class ExpressionBeingIgnored {
?? ?/**
?? ? * @param args
?? ? */
?? ?public static void main(String[] args)
?? ?{
?? ??? ?int i = 0;
?? ??? ?
?? ??? ?i = 0;
?? ??? ?i = i + (i = 1);
?? ??? ?System.out.println(i);?? ??? ?//輸出結(jié)果為:1
?? ??? ?
?? ??? ?i = 0;
?? ??? ?i =(i = 1) + i;
?? ??? ?System.out.println(i);?? ??? ?//輸出結(jié)果為:2
?? ??? ?
?? ??? ?i = 1;
?? ??? ?i += i + (i=3);
?? ??? ?System.out.println(i);?? ??? ?//輸出結(jié)果為:5
?? ??? ?
?? ??? ?i = 1;
?? ??? ?i += (i=3) + i;
?? ??? ?System.out.println(i);?? ??? ?//輸出結(jié)果為:7
?? ??? ?
?? ??? ?double d = 1.0;?? ??? ??? ??? ??? ?
?? ??? ?d += 1.5 * 3 + (++d);
?? ??? ?System.out.println(d);?? ??? ?//輸出結(jié)果為:7.5
?? ??? ?
?? ??? ?d = 1.0;
?? ??? ?d -= 1.5 * 3 + d++;
?? ??? ?System.out.println(d);?? ??? ?//輸出結(jié)果為:-4.5
?? ??? ?
?? ??? ?System.out.println("1" + 1 + 1);?? ??? ?//輸出結(jié)果為:111
?? ??? ?System.out.println("1" + (1 + 1));?? ?//輸出結(jié)果為:12
?? ?}
}
此外,我也剛剛注意到
??? ??? System.out.println("j is " + j + " and
???? ??? ??? ??? ??? ??? ??? k is " + k);
是不能編譯通過的,必須寫為
??? ??? System.out.println("j is " + j + " and k is " + k);
也就是說,""之間的字符串必須寫在一行中,不能換行!