循環語句(for,while,do……while),方法概述
阿新 • • 發佈:2019-04-07
count 方法 例子 while exti 基礎 ati java 區別
循環結構
分類:for,while,do……while
(1)for語句
格式:
- for(初始化表達式;條件表達式;循環後的操作表達式){
- 循環體;
- }
執行流程:
a.執行初始化語句
b.執行判斷條件語句,看其返回值是true還是false
- 如果是true,就繼續執行
- 如果是false,就結束循環
c.執行循環體語句
d.執行循環後的操作表達式
e.回到b繼續
1 //例子 2 //在控制臺輸出10次“helloworld” 3 for(inti=0;i<10; i++){ 4 System.out.println("helloworld"); 5 } 6 7 8 //練習1,在控制臺輸出數據1-10 9 //練習2,在控制臺輸出數據10-1 10 11 for(int i=1;i<=10;i++){ 12 System.out.println("i="+i); 13 } 14 15 for(int i=10;i>=1;i--){ 16 System.out.println("i="+i); 17 }
for語句的求和思想:
1 //練習一:求出1-10之間數據之和 2 3 int sum = 0; 4 for(int i=1;i<=10;i++){ 5 sum = sum+i; 6 } 7 System.out.println("sum="+sum); 8 } 9 10 //練習二:求出1-100之間偶數和 11 12 int sum = 0; 13 for(int i=1;i<=10;i++){ 14 if(i%2==0){ 15 sum = sum+i; 16 }17 } 18 System.out.println("sum="+sum); 19 } 20 21 //練習三:求出1-100之間奇數和 22 23 int sum = 0; 24 for(int i=1;i<=10;i++){ 25 if(i%2!=0){ 26 sum = sum+i; 27 } 28 } 29 System.out.println("sum="+sum); 30 }
練習:在控制臺輸出所有的水仙花數
1 //在控制臺輸出所有的水仙花數 2 //所謂的水仙花數就是指一個三位數,其各位數字的立方和等於該數本身 3 //舉例:153 4 //153=1*1*1+5*5*5+3*3*3=1+125+27=153 5 6 /* 7 第一步:100-999 8 第二步:獲取每一個位數的值,百位,十位,個位 9 第三步:判斷各個位上的立方和是否等於這個數,如果等於,則輸出 10 */ 11 12 for(int i =100;i<=999;i++){ //獲取100到999之間的數 13 int ge = 1%10; //123%10 14 int shi = 1/10%10; //12%10 15 int bai = 1/10/10%10; //1%10 16 17 if(ge*ge*ge+shi*shi*shi+bai*bai*bai){ 18 System.out.println(i); 19 } 20 } 21 22 //統計水仙花數一共有多少個 23 24 /* 25 第一步:需要有一個變量記錄水仙花個數 26 第二步:獲取到所有的3位數 27 第三步:判斷是否滿足水仙花數 28 第四步:如果滿足條件,計數器就自增 29 */ 30 31 int count = 0; 32 for(int i =100;i<=999;i++){ 33 int ge = 1%10; 34 int shi = 1/10%10; 35 int bai = 1/10/10%10; 36 37 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){ 38 count++; 39 } 40 } 41 System.out.println(count); 42 }
while語句的基本格式和使用
基本格式:
- while(判斷條件語句){
- 循環體語句;
- }
完整格式:
- 初始化語句;
- while(判斷條件語句){
- 循環體語句;
- 控制條件語句;
- }
1 //例子 2 //在控制臺輸出1-10 3 int x=1; 4 while(x<=10){ 5 System.out.println("x="+x); 6 x++; 7 } 8 9 //練習一:求和思想,求1-100之和 10 int sum=0; 11 int i=1; 12 while(i<=100){ 13 sum+=i; //sum=sum+i; 14 i++; //讓變量i自增 15 } 16 System.out.println("sum="+sum); 17 } 18 19 //練習二:統計思想,統計水仙花個數 20 int count = 0; //計數器 21 int i =100; 22 while(i<=999){ 23 int ge = i%10; 24 int shi = i/10%10; 25 int bai = i/10/10%10; 26 27 if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){ 28 count++; 29 } 30 i++; 31 } 32 System.out.println("count"+count); 33 }
do......while語句基本格式和使用
格式:
- do{
- 循環體語句;
- }while(判斷條件語句);
完整格式:
- 初始化語句;
- do{
- 循環體語句;
- 控制條件語句;
- }while(判斷條件語句);
1 //例子 2 //在控制臺輸出數據1-10 3 int i = 1; 4 do{ 5 System.out.println("i="+i); 6 i++; 7 }while(i<=10);
三種循環語句的區別:
- do……while:至少執行一次循環體
- 而for,while必須先判斷條件是否成立,然後決定是否執行循環體
- for語句執行後變量會被釋放,不能再使用
- while語句執行後,初始化變量還可以繼續使用
兩種簡單的死循環結構:
(1)while(true){……}
(2)for(;;){……}
循環嵌套題目:
1 //輸出一個正三角形 2 /* 3 * 4 ** 5 *** 6 **** 7 ***** 8 */ 9 10 for(int i =1;i<=5;i++){ //外循環決定行數 11 for(int j =1;j<=i;j++){ //內循環決定列數 12 System.out.println("*"); 13 } 14 System.out.println(); //換行 15 }
1 //輸入一個4行5列的圖案 2 /* 3 ***** 4 ***** 5 ***** 6 ***** 7 */ 8 //外循環控制行數,內循環控制列數 9 for(int i=1;i<=4;i++){ //外循環 10 for(int j=1;j<=5;j++){ //內循環 11 System.out.print("*"); 12 } 13 System.out.println(); //換行 14 }
1 //在控制臺輸出九九乘法表 2 3 for(int i=1;i<=9;i++){ //行數 4 for(int j=1;j<=i;j++){ //列數 5 System.out.print(j+"*"+i+"="+(i*j)+‘\t‘); 6 } 7 System.out.println(); 8 }
控制跳轉語句:
- 1、break
- 使用場景:只能在switch中和循環中使用,停止循環
- 2、continue
- 使用場景:只能在循環中
- 3、return
- 作用:返回,不是結束循環,而是結束方法
三者的區別:
- return是結束方法
- break是跳出循環
- continue是終止本次循環,繼續下次循環
控制跳轉語句標號
1 //例子 2 3 outer:for(int i =0;i<=10;i++){ 4 //outer就是標號,只要是合法的標識符即可 5 System.out.println("i="+i); 6 inner:for(int j=1;j<=10;j++){ 7 System.out.println("j="+j); 8 break outer; 9 } 10 }
1 //練習 2 //在控制臺輸出2次“java基礎班” 3 //在控制臺輸出7次“java基礎班” 4 //在控制臺輸出13次“java基礎班” 5 6 7 for(int x=1;x<=10;x++){ 8 if(x%3==0){ 9 //break; //輸出2次 10 //continue; //輸出7次 11 System.out.println("java基礎班"); //輸出13次 12 } 13 System.out.println("java基礎班"); 14 }
Java的方法
概述:完成特定功能的代碼塊,提高代碼的復用性
格式:
- 修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2……){
- 方法體語句;
- return 返回值;
- }
參數:
- 實際參數:就是實際參與運算的
- 形式參數:就是方法定義上的,用於接收實際參數的
1 //例子 2 //用方法求兩個整數的和 3 4 public static void main(String[] args){ 5 int sum = add(10,20); //實際參數 6 } 7 8 public static int add(int a,int b){ //形式參數 9 int sum = a+b; 10 return sum; 11 }
方法的調用:
(1)單獨調用,沒有意義,例:add(10,20);
(2)輸出調用,不夠好,例:System.out.println(add(10,20));
(3)賦值調用,推薦
1 //練習1:鍵盤錄入兩個數據,返回兩個數中的較大值 2 //練習2:判斷兩個整數是否相等 boolean 3 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 System.out.println("請輸入第一個整數:"); 7 int x= sc.nextInt(); 8 System.out.println("請輸入第二個整數:"); 9 int y = sc.nextInt(); 10 11 int max = getMax(x,y); 12 System.out.println(max); 13 14 boolean b = isEquals(x,y); 15 System.out.println(b); 16 17 } 18 19 /* 20 返回兩個整數的較大值 21 1、明確返回值類型 22 2、明確參數列表 int a,int b 23 */ 24 25 public static int getMax(int a,int b){ 26 return a>b?a:b; 27 } 28 29 30 /* 31 判斷兩個整數是否相等 32 1、明確返回值類型 33 2、明確參數列表 int a,int b 34 */ 35 36 public static boolean isEquals(int a,int b){ isEquals 是否相等 37 return a==b; 38 }
1 //在控制臺輸出矩形星形 2 3 public static void main(){ 4 Scanner sc = new Scanner(System.in); 5 System.out.println("請輸入行數"); 6 int row = sc.nextInt(); 7 System.out.printin("請輸入列數"); 8 int column = sc.nextInt(); 9 10 print(row,column); 11 } 12 13 14 /* 15 1、明確返回值類型,經分析沒有具體的返回值類型,void 16 2、明確參數列表int a,int b 17 */ 18 19 public static void print(int a,int b){ 20 for(int i = 1;i<=a;i++){ //行數 21 for(int j=0;j<=i;j++){ //列數 22 System.out.print("*"); 23 } 24 System.out.println(); 25 } 26 }
方法的練習:
1 //打印乘法表 2 3 public static void main(String[] args){ 4 Scanner sc = new Scanner(System.in); 5 System.out.println("請輸入一個整數"); 6 int num = sc.nextInt(); 7 } 8 9 /* 10 1、返回值類型void 11 2、參數列表,int a 12 */ 13 14 public static void print(int a){ 15 for(int i=1;i<=a;i++){ 16 for(int j=1;j<=i;j++){ 17 System.out.print(j+"*"+i+"="+(i*j)+"\t"); 18 } 19 System.out.println(); 20 } 21 }
方法重載(overload):方法名相同,參數列表不同,與返回值類型無關
重載的分類:
- 1、參數個數不同
- 2、參數類型不同(順序不同)
1 //方法的重載練習 2 //比較兩個數據是否相等,參數類型分別為兩個int類型,兩個double類型,並在main方法中進行測試 3 4 5 boolean b1 = isEquals(10,10); 6 System.out.println(b1); 7 8 boolean b2 = isEquals(10.5,10.6); 9 System.out.println(b2); 10 11 /* 12 1、返回值類型boolean 13 2、參數列表int a,int b 14 */ 15 16 public static boolean isEquals(int a,int b){ 17 return a==b; 18 } 19 20 21 /* 22 1、返回值類型boolean 23 2、參數列表double a,double b 24 */ 25 26 public static boolean isEquals(double a,double b){ 27 return a==b; 28 }
循環語句(for,while,do……while),方法概述