1. 程式人生 > >循環語句(for,while,do……while),方法概述

循環語句(for,while,do……while),方法概述

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 forint
i=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 forint 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 forint 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 forint 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),方法概述