一.
這里開始對if語句的應用,展開操作實驗。
(截圖給出了if第三種格式的一個應用,從中我得出以下幾點:1. 一種最常見,也最合理的情況就是,在if條件語句的前面必須有前提條件。給定了前提,然后通過if條件語句來進行判斷,從而決定,執行哪些語句。2. if和else if 里面都是單條語句,因此省略了{}。3. 案例是輸出不同日期對應不同星期的情況,這表明什么if判斷語句,解決的是“針對不同情況,實施不同措施”,不同種類的划分問題。4. 在if語句划分的基礎上,引出了一個編碼重復性的知識點。)
在判斷輸入數據代表星期幾的例子中,證明了我對於==比較運算符理解的不夠透徹,和對if第三種格式的理解不夠。最后一個else后面不用接任何條件表達式,代表着除上面幾種情況外的剩余所有數據。
注意:if的格式2和格式3,是對所有區間進行了划分,並且當每一部分區間成立時,應該執行什么語句都交代清楚了,只有執行過其中一部分,才會退出if語句。格式3相對2來說,區間划分的更多罷了。
自己嘗試書寫此例,發現錯誤。
刪掉{}后,程序反而能夠運行。
分析:仔細觀看截圖,發現是一些分支代碼塊少些了花括號。
這里還要說明一點,后面會講到Switch語句的執行順序,在if語句里面,執行的順序是從上到下,一旦執行了某一個部分,那就直接退出if語句,Switch語句和if不一樣。為什么會談到執行順序,就是因為結構比較復雜,內部的語句較多。
二.
首先要明白,星期和季節題都是鍛煉對if語句的使用。這里的if語句代碼塊的書寫要比之前的要復雜。
注意:星期和季節的例子可以這么來看,在給定的眾多數據中,只有特定的一小部分數據有效,需要細分操作。剩下的無用數據歸為一類。只是在判斷給定的數據屬於哪一類時,判斷的語句書寫有簡單,有復雜。
思路:目前對於java語言認識不夠深入,以現有的知識水准來寫的話,只能用if格式三,且書寫的語句很多。實話說,到目前為止也就接觸過if語句,其他的稍微復雜一些就是運算符。運算符支撐不起這么大的攤子。我們現在處於程序流程控制的知識塊,這是一個控制的節奏。一個復雜的問題,我們該如何控制它一步步運算下來。
書寫形式如下:
int x;
if (x==3)
{
System.out.println(x+"對應的是春季");
}
.......
但是,有沒有if的條件語句中可以一次性判別多個的形式?→這就和解題一樣,雖然會好多簡便的解題方法,但是由於對java語言的理解不深入,導致只能用笨拙的方法。
上面的缺點就在於,有太多的重復輸出語句,如System.out.println(x+"對應的是春季");就要寫四遍,還有夏季,秋季,冬季.....。
在編程領域有這么一句話,提高代碼的復用性。一個代碼用兩次是可以的,一旦超過兩次,就需要重新思考代碼的書寫。
提高代碼復用性的手段有很多種,這里只介紹一種,連接條件語句。(這種情況被稱作多條件對應相同內容)
怎么連接條件語句,就是用邏輯運算符。邏輯運算符的存在可以提高代碼的復雜性。→一個復雜if語句的思考過程。
看下面的截圖,使用的是短路或。自己對於前面的知識點,又開始有點遺忘。短路或和或運算得到的結果是一樣的,只是在某一些情況下,短路或更能提高運算的效率。||左側為true時,右側就不在進行運算,直接輸出結果為true,但是當左側為false時,右側還是要接着運算,這時的操作和單|是一樣的。還有一點是,相較於其他運算符鏈接的參數而言,邏輯運算符可以鏈接的參數更多,可以說沒有上限。
邏輯運算符不光可以連接兩個表達式,如下
視頻中出現了一個錯誤,截圖如下
錯誤:沒有找到對應的類。原因:設置了classpath,java命令執行時類文件名寫錯了。
在這里源程序寫的是IfTest2.java,但是代碼中的類名是class IfTest。因此,即使編譯IfTest2.java源程序,輸出認識對應類名的類文件,而非源程序名的類文件。當然,也有可能是在DOS中啟用java運行時,敲錯了類文件的名字。
經過前面的講解,得到了一個簡化的源程序,但是還是不夠簡化,if的條件語句里,month==3 || month==4 || month==5; 還是顯得太長
可以對輸入數據的判斷換個說法(寫或是將所有的條件表達式列出來,太繁瑣,可以用范圍來代表條件表達式),month>=3 & month<=5; &連接兩個boolean類型的數據,if條件語句始終代表的是一種判斷。在這里,又提到了&和&&的區別,&需要對兩邊的表達式都要進行判斷,而&&只需要判斷左邊的。&&當左邊為false時,才不會斷定右邊的表達式。→一定要明確一點,寫&&或者||和單寫&,|的結果是一樣的,只是寫了雙的會提高部分的效率。
這里對if語句的認識再次升華,if語句第三種格式實際上是對全區間進行了判別。為什么會有全區間的判別,就在於輸入的不確定性。
注意:if語句的格式2和格式3均是對全區域進行的判斷分析。
三. 總結
在星期和季節的例子的學習中,其實還是回到了計算機編程的本源問題上來。計算機是幫助我們運算的,怎么運算靠的是程序。那么程序又是什么,程序是人類運算思想和運算過程的計算機展現。人怎么想,怎么做的,就用對應的計算機語言來表示。