/* * 使用BufferedReader類 處理輸入數據,獲得整數 */ import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class InputData{ private BufferedReader buf = null; public InputData() { this.buf = new BufferedReader(new InputStreamReader(System.in)); } public String getString(String info) { String temp = null; System.out.print(info); try { temp = this.buf.readLine(); }catch(IOException e) { e.printStackTrace(); } return temp; } public int getInt(String info,String err) { int temp = 0; String str = null; boolean flag = true; while(flag) { str = this.getString(info); if(str.matches("^\\d+$")) { temp = Integer.parseInt(str); flag = false; }else { System.out.println(err); } } return temp; } }; /* * 利用條件運算符的嵌套來完成 * 學習成績> =90分的同窗用A表示,60-89分之間的用B表示,60分如下的用C表示。 */ public class Test05 { public static void main(String[] args) throws Exception{ int i = 0; InputData input = new InputData(); i = input.getInt("請輸入成績:","輸入成績格式有誤,請從新輸入!"); String str1 = i>=90?"A":i>59?"B":"C"; System.out.print("成績等級爲:"); System.out.print(str1); } }; /* * 輸入兩個正整數m和n,求其最大公約數和最小公倍數。 * 展轉相除法 */ public class Test06 { public static void main(String[] args) { int a = 0; int b = 0; InputData input = new InputData(); a = input.getInt("請輸入第一個數字:","輸入數據必須是數字,請從新輸入!"); b = input.getInt("請輸入第二個數字:","輸入數據必須是數字,請從新輸入!"); int s = a*b/run(a,b); System.out.println("最大公約數爲:" + run(a,b)); System.out.println("最大公倍數爲:" + s); } public static int run(int m,int n) { int i = Math.max(m, n); int j = Math.min(m, n); int z = i%j; if(z != 0) { return run(j,z); }else return j; } }