public class CH0901 { public static void main(String[] args) { int i = 1; while (i <= 10) { System.out.println("第"+ i + "行"); i++; } } }
首先定義了「int」變數「i」從1開始,「while」條件「i小於等於10」。
重複執行的程式碼區塊先印出數字,然後將變數「i」遞增1。
直到「while」條件「i小於等於10」不成立,也就是「i」已遞增到了11的情況發生時結束迴圈。
需要「即時判斷」或是「未知次數」的重複工作,應該要建立要以「while」迴圈來處理的基本概念。如即時鍵盤輸入、尋找資料等。在設計時要注意,預期是要能成功結束或是有其它條件能介入中斷的。若設計時沒注意到這種問題,會造成無限迴圈浪費JVM的資源。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class CH0902 { public static void main(String args[]) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); int num=0; while(num<10) { System.out.print("請輸入一個大於10的數字:"); num=Integer.parseInt(buf.readLine()); } System.out.println("你輸入的數字是 "+num); } }
首先定義了「num」變數的預設值為「0」,「while」條件「num小於10」時的重複工作。
第1次執行因參考預設值「0」條件成立使得程式碼區塊印出「請輸入...」並將「num」代入鍵盤輸入值。
直到條件不成立,也就是「num」代入的數值超過9的情況發生時,程式印出最終輸入的值並結束迴圈。
此例不考慮錯誤處理機制,先熟悉迴圈的應用是目前的主要課題。
永不停止執行
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class CH0904 { public static void main(String args[]) throws IOException, InterruptedException { Process p; String line; while (true) { p = Runtime.getRuntime().exec("wmic cpu get loadpercentage"); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((line = reader.readLine()) != null) { System.out.print(line); } System.out.println(); } } }
「while」條件沒有指定變數,而是指定1個布林值「true」。
擺明了就是常駐程式,沒有太多的手段能由外來停止。
此例不考慮錯誤處理機制,先熟悉迴圈的應用是目前的主要課題。
沒有留言:
張貼留言