
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class CH0601 { public static void main(String[] args) { int a = 1 , b = 2 , c = 3 ; String StringA= "hello" , StringB= "world" ; System.out.println(a==b); //數值相等 System.out.println(a!=b); //數值不相等 System.out.println(StringA.equals(StringB)); //字串相等 System.out.println(!StringA.equals(StringB)); //字串不相等 System.out.println(a==b && a==c); //左右2邊的敘述均成立 System.out.println(a==b || a==c); //左右2邊的敘述任何1邊成立 System.out.println(a>b); //左側值大於右邊 System.out.println(a<b); //右側值大於左邊 } } |
只要是物件都有.equals(obj)方法,用於比較括號內的物件內容。
比較物件「相等」時至少2個運算子「==」「!=」,單個運算子「=」是賦值的意思。
if 單向流程控制
以單項條件判斷,當結果為「true」時所要進行的動作。這裡假設一個自動控制空調的程式裡有一個 temp 變數,其中存放的是現在的氣溫,當氣溫高過28度時運轉壓縮機, 當氣溫低於 26 度時自動關閉壓縮機。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class CH0602 { public static void main(String[] args) { int temp = 29 ; //假設感測器提供的溫度為29度 if (temp > 28 ){ System.out.println( "開放空調系統" ); } if (c < a) System.out.println( "關閉空調系統" ); } } |
當if( )的比較運算結果為「true」時
程式執行if( ){ }後方大括號區塊的敘述。
若後後方沒有大括號,則執行第1個分號敘述。
建議在此階段儘量採用大括號區塊,以清楚分隔程式流程。
if 雙向流程控制
以單項條件判斷,當結果為「true」時所要進行的動作,以及結果為「false」時所要進行的動作。假設一個自動控制空調的程式裡有一個 hour 變數, 其中存放的是現在的時間,當時間超過早上8點時自動開放空調系統電源, 當超過下午4點自動關閉空調系統電源。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class CH0603 { public static void main(String[] args) { int hour = 22 ; //假設計時器傳回時間為晚上10點 if (hour > 8 && hour < 16 ){ System.out.println( "電源開啟" ); } else { System.out.println( "電源關閉" ); } } } |
注意與CH010不同之處在於 else 的用法。
else{ }區塊表示當判斷式為「false」時,程式要執行的範圍。
鏈狀 if
當要檢查與問題相關的多於1個條件時,使用以多項條件判斷的鏈狀 if。當其中任一項判斷結果為「true」時,執行該區塊所要進行的動作。 這裡假設一個自動變頻空調的程式裡有一個 temp 變數,其中存放的是現在的氣溫,當氣溫高過30度時以全速運轉壓縮機, 當氣溫高於 28 度時以半速運轉壓縮機,而氣溫高於26度時以低速運轉,其他情況則停止壓縮機採用送風的方式運轉。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class CH0604 { public static void main(String[] args) { int temp = 29 ; //假設感測器提供的溫度為29度 if (temp >= 30 ){ System.out.println( "全速運轉" ); } else if (temp < 30 && temp >= 28 ){ System.out.println( "半速運轉" ); } else if (temp < 28 && temp >= 26 ){ System.out.println( "低速運轉" ); } else { System.out.println( "送風運轉" ); } } } |
巢狀if
以多項條件判斷,視判斷結果執行不同區塊。這裡假設一個自動變頻空調的程式裡有一個 hour 變數和temp ,其中存放的是現在的時間和氣溫,當氣溫高過30度時以全速運轉壓縮機, 當氣溫高於 28 度時以半速運轉壓縮機,而氣溫高於26度時以低速運轉,當氣溫低於26度以送風運轉。另外,若時間為上午11點到下午1點之間除非氣溫超過38度以低速運轉,否則只以送風運轉。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | public class CH0605 { public static void main(String[] args) { int temp = 34 ; // 假設感測器提供的溫度為34度 int hour = 12 ; // 中午12點 if (hour >= 11 && hour <= 13 ) { if (temp >= 30 ) { System.out.println( "低速運轉" ); } else { System.out.println( "送風運轉" ); } } else { if (temp >= 30 ) { System.out.println( "全速運轉" ); } else if (temp < 30 && temp >= 28 ) { System.out.println( "半速運轉" ); } else if (temp < 28 && temp >= 26 ) { System.out.println( "低速運轉" ); } else { System.out.println( "送風運轉" ); } } } } |
沒有留言:
張貼留言