1. 程式人生 > 實用技巧 >java基礎筆記(七)——java選擇結構

java基礎筆記(七)——java選擇結構

選擇結構

if單選擇

if雙選擇結構

if多選擇結構

switch多選擇結構

  • switch語句用來匹配一個特定的值

  • 字串經編譯後比較的是字串的雜湊值

 		char c = 'C';
        switch (c){
            case 'A':
                System.out.println("優秀");
                break;
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("及格");
                break;
            case 'D':
                System.out.println("不及格");
                break;
                default:
                    System.out.println("其他等級");
 
        }

IDE的反編譯

  • 右鍵Project Structure(一個資料夾圖示)-->點選project選項-->檢視project compiler output的檔案目錄-->開啟此檔案目錄--->將對應的.class檔案從物理層拷貝到.java檔案所在資料夾

迴圈結構

while迴圈

  • 格式:while(表示式){迴圈內容}

  • 特點:

  • 表示式為boolean值,如果為true程式會一直執行也就是死迴圈,一般我們都需要將表示式的值設為false,當迴圈達到某個特定條件就結束迴圈;極少數情況下,我們會讓程式一直執行,比如伺服器的請求響應監聽等

  • 案例

    • 	//案例:計算1+2+3+4+...+100的值
            //定義一個計數器i,從1開始進行累加
            int i = 0;
            //定義一個變數記錄總和
            int sum = 0;
            //迴圈累加,i進行自增,當i>100時迴圈停止
            while (i<=100){
                sum += i;
                i++;
            }
            System.out.println("sum = " + sum);
      

do...while迴圈

  • 格式:do{迴圈內容}while(表示式)

  • do...while與while的區別:

    • while迴圈是先判斷再執行,而do...while是先執行再判斷
    • do...while保證迴圈體至少執行一次。這是二者的主要差別
    		int i = 0;
            while (i < 0){
                i++;
                System.out.println("while迴圈中i= " + i);
    
            }
            System.out.println("============================");
            do {
                i++;
                System.out.println("do...while中i=" + i);
            }while (i<0);
    //顯示結果:
    ============================
    do...while中i=1
    

for迴圈

  • for( ; ; ){}:為死迴圈

  • 案例:

    • 案例1:計算0-100間奇數和偶數的和

       		//計算0-100間,奇數與偶數的和
              int oddSum = 0;
              int evenSunm = 0;
              for(int i=0;i<=100;i++){
                  if (i%2!=0){//奇數
                      oddSum+= i;
                  }else {//偶數
                      evenSunm+= i;
                  }
              }
              System.out.println("奇數的和:oddSum=" + oddSum);
              System.out.println("偶數的和:evenSum=" + evenSunm);
      
    • 案例2:用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個

       //案例2:用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
              for (int i = 0; i <= 1000; i++) {
                  if (i%5 == 0){
                      System.out.print(i + "\t");
                  }
                  if (i%(5*3)==0){
                      System.out.println();
                  }
              }
      
      //while迴圈
       		int i =0;
              while (i<=1000){
                  if (i%5==0){
                      System.out.print(i + "\t");
                  }
                  if (i%(5*3)==0){
                      System.out.println();
                  }
                  i++;
              }
      
    • 案例3:列印九九乘法表

      //列印九九乘法表
              /*
                  1.先列印第1列,從第一列開始
                  2.在第1列外面加個迴圈,使固定的1變為一個變數
                  3.去除重複項
                  4.美化輸出
               */
              for (int i = 1; i <= 9; i++) {//控制行數
                  for (int j = 1; j <= i; j++) {//控制每行的個數
                      System.out.print(j + " * " + i +" = " + (i*j) + "\t");
                  }
                  System.out.println();
              }
      

break 與Continue

  • break退出整個迴圈,不執行剩下的迴圈語句

  • continue退出本次迴圈,還會執行下一次迴圈的語句判定

練習

案例:列印三角形

//列印三角形 5行
		/*
            分析:
            1.先列印一個5*5的正方形
            2.將第一個內迴圈,打印出一個倒三角(第一行列印5個*)
            3.將第二個內迴圈,打印出一個直角三角。(第一行列印1個*)
            4.將第三個內迴圈,按照第二個內迴圈列印,但是注意,因為第一行已經有了一個*,所以第三個內迴圈需要<i
         */
        for (int i = 1; i <=5; i++) {//列印的是5*5的正方形
            for (int j=5;j>=i;j--){//去除重複
                System.out.print(" ");
            }
            for (int j=1;j<=i;j++){
                System.out.print("*");
            }
            for (int j=1;j<i;j++){
                System.out.print("*");
            }


            System.out.println();
        }

     *
    ***
   *****
  *******
 *********

 //列印菱形
        /*
            分析:
                1.相當於是兩個三角形拼接成
         */
        for (int i=1;i<=5;i++){
            for (int j=5;j>=i;j--){//設定倒三角
                System.out.print(" ");
            }
            for (int j=1;j<=i;j++){//列印第一個直角三角
                System.out.print("*");
            }
            for (int j=1;j<i;j++){//列印第二個直角三角
                System.out.print("*");
            }
            System.out.println();
        }
        //列印倒三角
        for (int i=1;i<=5;i++){
            for (int j=1;j<=i;j++){//設定倒三角
                System.out.print(" ");
            }
            for (int j=5;j>=i;j--){//列印第一個直角三角
                System.out.print("*");
            }
            for (int j=5;j>i;j--){//列印第二個直角三角
                System.out.print("*");
            }
            System.out.println();
        }