今天咱們要說的是條件判斷語句,條件判斷是編程裏最最經常使用最最基本的技巧。那麼什麼叫條件判斷呢? 翻譯成白話文就是「若是。。。。那麼。。。。」的意思。好比,若是今天下雨,我就在家呆着; 若是下雪,我就出去打雪仗; 等等等等。在java裏,咱們這麼表示這樣的東西:if.....來表示這樣的邏輯。下面咱們來介紹一下java裏條件表達式,而後再介紹常見的幾種條件判斷語句。java
首先,條件表達式,最經常使用的有>, >=, <, <=, ==, String類的equals函數,其餘各種庫中返回值爲布爾值的內建函數,用戶自定義的返回值爲布爾值的函數。咱們在這裏暫時不討論後面幾種狀況,咱們只說一下前面幾種:編程
1. >, >=, <, <=,這些沒什麼可說的對吧,就是數學裏面的不等號,7>=5,會返回一個true的布爾值,9>10,會返回一個false的布爾值。函數
2. ==,這就是等於的意思,之因此要單拿出來講,是由於雙等號表示的是條件判斷,而做爲人類,咱們常常會寫成單等號,好比,8==8,會返回一個true的布爾值,可是8=8呢?這將是一個錯誤,由於你其實是試圖把右邊的整型數據8賦值給左邊的8,而左邊的8並非一個變量名。若是你這樣作:int n; n = 8; 這將是一個賦值操做,只是一個行爲,並不會返回任何值。翻譯
3. String類的equals函數,在java中,最好不要用==來比較兩個字符串是否相同。由於若是你使用==來比較兩個字符串,那麼實際上你是在比較兩個字符串的內存引用地址,通常來講,是不一樣的,可是java編譯器不會報錯,由於java認爲你在比較兩個字符串的內存引用地址。若是要比較兩個字符串內容是否相同,須要使用equals函數。咱們來作個簡單的例子,以下:blog
從上面能夠看出,==對於s1和s3的比較沒有發生做用,或者說,給了咱們一個false的值(由於裏面的操做沒有執行),而==對於s1和s2的比較,居然起了做用,你也許會問,你剛纔不是說不要使用==嗎?對啊,但是我仍是說了,若是你使用==來比較兩個字符串,其實是比較兩個字符串的內存引用地址。咱們來看看咱們的程序,String s1 = "Canada"; String s2 = "Canada"; String s3 = new String("Canada"); s1和s2的這種定義方式,會使得他們指向同一個內存地址,而s3的定義方式,其實是爲s3開闢了一個新的內存地址。因此當使用==比較s1和s3的時候,因爲比較的是內存地址,因此不相同,返回false,if裏面的操做沒有執行。 而使用==來比較s1和s2的時候,因爲二者指向了同一個內存地址,因此返回了true,執行了if內部的操做。內存
string1.equals(string2)是比較字符串string1和括號裏的string2內容上是否徹底相同,若是相同則返回true,不然返回false。字符串
string1.equalsIgnoreCase(string2)是比較字符串string1和括號裏的string2內容上是否相同,忽略大小寫。若是在不考慮大小寫的狀況下相同,則返回true,不然返回false。編譯器
另外,也可使用String的compareTo和compareToIgnoreCase方法,這兩個並不經常使用,咱們會在之後的String操做裏詳細介紹。數學
接下來咱們說一下條件判斷語句的格式,通常有如下常見的幾種格式:string
1. if(條件){執行的操做},這是最基本的條件判斷語句,表示當某條件爲真的時候,執行某種操做。
2. if(條件){執行的操做1}else{執行的操做2},這表示,當某條件爲真的時候,執行操做1,不然,執行操做2。
3. if(條件1){執行的操縱1}else if(條件2){執行的操做2}else if(條件3){執行的操做3}...else if(條件n){執行的操做n}else{執行的操做},這表示,當條件i成立時,執行操做i,若是都不成立,則執行最後的操做。
以上就是常見的條件判斷語句,下面咱們來看個簡單的例子,在這裏例子中,咱們讓用戶輸入兩個浮點型數據,而後計算第一個浮點型數據的ln值,若是大於第二個數據,輸出一條信息,若是小於第二個數據,輸出另外的信息,若是等於,再輸出別的信息。代碼以下:
好了,今天咱們簡單說了一下java的條件判斷,條件判斷在全部編程裏都是很重要的,幾乎全部的程序,從幾十行的簡單程序到上萬行的大項目,都會頻繁用到條件判斷,因此請讀者多多練習。