對于剛剛接觸java語言的初學者而言,除了“hello world”,比較常見的就是水仙花數、最大公約數、最小公倍數、完數、素數(質數)、一定范圍內的奇數和、一定范圍內的偶數和等等等等練習,此類練習基本都是針對“for(變量的初始;條件的判斷;條件的改變){循環體}”,以及for語句中嵌套“if(條件判斷){循環體}”的知識點進行操作的,當然,有些題目的知識點可以拓展到數組、函數等,但是對于剛剛接觸Java語言,剛剛欣喜地寫出“hello world”的初學者而言,僅僅使用for語句(或while、do……while語句)配合嵌套if語句就可以實現了。那么,此處以求輸入的兩個整數為例,進行示范。由于工作較忙,能抽出的時間較少,那么此處僅羅列出需要注意的重點內容和拓展內容,針對代碼的解析可以參考代碼中的注釋:
一、注意:
1、如何在代碼中實現輸入功能?
解析:此處,需要在類前(所有代碼之前),調用一個package,即:【import java.util.Scanner;】然后,在代碼中(實例參見下面代碼)按照如下格式,定義要輸入的變量:
Scanner sc=new Scanner(System.in);
System.out.PRintln("請輸入第一個整數:");int data1=sc.nextInt();
2、如何能夠一次編譯運行,多次輸入數字執行程序?
解析:此處可以使用while(true){}的方法,將所有要執行的程序循環執行即可,因為當判斷條件為真,那么括號內的循環體將一直執行下去。
3、可以使用求余是否為0的辦法進行很多程序題目的分析,如判斷是否為質數、判斷是否為奇數等等等等,詳見下附代碼。
4、善用三目運算符,例如int min=data1>data2?data2:data1;//使用三目運算符求解輸入數字的最小值。
(由于時間關系,不再做更多累述,瑾希望能夠幫助更多初學者朋友們解決遇到的此類問題,歡迎批評指正。)
/**需求:寫兩個方法,分別求兩個整數的最大公約數 和 最小公倍數提示:最大公約數 --->較小的這個數開始 依次遞減 條件判斷 同時用這兩個數去做除法,如果能整除哪就是最大公約數*/import java.util.Scanner;//調用可以輸入數字的包class G{ public static void main(String[] args){ while(true){//用于多次輸入 Scanner sc=new Scanner(System.in); System.out.println("請輸入第一個整數:"); int data1=sc.nextInt(); while(data1<0){//如果不是大于零的整數,那么要重新輸入 System.out.println("范圍錯誤,請重新輸入第一個數:"); data1=scanner.nextInt();} System.out.println("請輸入第二個整數:"); int data2=sc.nextInt(); while(data2<0){//如果不是大于零的整數,那么要重新輸入 System.out.println("范圍錯誤,請重新輸入第二個數:"); data2=scanner.nextInt();} int max=data1>data2?data1:data2;//使用三目運算符求解輸入數字的最大值 int min=data1>data2?data2:data1;//使用三目運算符求解輸入數字的最小值 int j=0; //求最大公約數:定義i為兩個數中最小的,通過循環遞減,判斷是否能被最大數整除,再嵌套if判斷能否被最小數整除 for(int i=min;i<=max;i--){//for語句嵌套if語句的循環的使用 if(max%i==0){ j=i; if(min%j==0){ System.out.println("兩個數的最大公約數為:"+j); break; } } } /* 此處還可以使用另一種方法,即使用邏輯運算符&&,減少判斷過程,上述方法是為了增強學者對for語句嵌套if語句的理解,方法如下: for(int i=min;i>0;i--){ if(data1%i==0&&data2%i==0){ System.out.println("最大公約數:"+i); break; } } */ //求最小公倍數: for(int a=1;;a++){ int b=max*a; if(b%min==0){ System.out.println("兩個數的最小公倍數為:"+b); break; } } } }}
新聞熱點
疑難解答