java do -while 三種用法


 

do—while 1

/*do-while結構如下

do{ 循環體 } while(條件表達式) 

特點:無條件的執行一次循環體,再來判斷條件表達式的值,至少循環一次*/

 import java.util.*;
    public class dh1 { public static void main(String[] args) { int n,i=1,sum=0; Scanner buf = new Scanner(System.in); do{ System.out.println("請輸入正整數: "); n=buf.nextInt(); }while(n<=0); while(i<=n) sum+=i++; System.out.println("1+2+3+...+"+n+"="+sum); } } 

do—while 2

//filename dh2.java 使用輾轉相除法求2個整數的最大公約數
/設有不全為0的整數a和b,他們的最大公約數幾位gcd(a,b),即同時能整除a和b的公因數中的最大者,按照歐幾里得的輾轉相除法,gcd(a,b)有如下性質
①gcd(a,b)=gcd(b,a)
②gcd(a,b)=gcd(-a,b)
③gcd(a,0)=|a|
④gcd(a,b)=gcd(b,a%b),0<=a % b<b
本例中,反復運用性質④,最終使得第二個參數a%b等於0,則第一個參數就是所求的最大公約數
/

 import java.io.*;
    public class dh2 { public static void main(String[] args) throws IOException { int a,b,k; String str1,str2; BufferedReader buf; buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("請輸入第一個數a= "); str1 = buf.readLine();//將輸入的數據賦值給字符串變量str1 a=Integer.parseInt(str1);//將str1轉換成int類型數據后賦值給a System.out.println("請輸入第二個數b= "); str2=buf.readLine();//將輸入的數據賦值給字符串變量str2 b=Integer.parseInt(str2);//將str1轉換成int類型數據后賦值給b System.out.println("gcd("+a+","+b+")="); do{ k=a%b; a=b; b=k; }while(k!=0);//若余數k不等於0,則繼續進行下一次循環 System.out.println(a); } } 

do—while 3

/已知s=n!,其中n為正整數,從鍵盤上任意輸入一個大於1的正整數m,求滿足s>m時的最大s,以及此時的n,並輸出s和n的值/
//filename dh3.java

  import java.util.*;
    public class dh3 { public static void main(String[] args) { int n=1,s=1,m; Scanner reader = new Scanner(System.in); do{ System.out.print("請輸入大於1的正整數m: "); m=reader.nextInt(); }while(m<=1);//此處若輸入的數字小於或等於一,會無限循環提示輸入大於1的數m while(s<m)//判斷n!<是否成立 { s*=n;//計算s=n n++; } System.out.println("s="+s/(n-1)+" n="+(n-2)); } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM