Java語言學習(三):流程控制

    在瞭解開發工具後,咱們來熟悉一下Java語言的流程控制模塊知識,下面經過一些案例來學習一下。java

    首先,來熟悉一下流程控制語句if...else的使用:編程

    (1)任務:判斷某一年是否爲閏年數組

    (2)準備工做:符合閏年的條件是能被4整除但不能被100整除或者能被400整除工具

    (3)編程:經過控制檯輸入年份的方式,代碼以下學習

import java.util.Scanner;

public class RunYear{
   public static void main(String[] args){
      Scanner scan =new Scanner(System.in);
      System.out.println("請輸入一個年份:");
      long year;
      try{
          year = scan.nextLong();
          if((year%4 == 0 && year%100 !=0) || year%400 == 0)
              System.out.println(year+"是閏年!");
          else
              System.out.println(year+"不是閏年!");
      }catch(Exception e){
          System.out.println("輸入的不是有效的年份!");
      }
   }
}

    (4)運行:輸入年份可輸出相應信息開發工具

    其中,Scanner類是一個用於掃描輸入文本的簡單文本掃描器,能夠用這個類從控制檯寫入數據,類的nextLong()方法能夠將輸入信息轉爲一個long型的數據。上面運用了if...else的簡單流程語句,也能夠按三元運算符(?:)的形式編寫,讓代碼看起來更加簡潔。ui

    注意:若是if表達式判斷兩字符串是否相同,則不能使用 「==」,由於字符串屬於對象而非基本數據類型,使用「==」判斷的將是兩個字符串對象的內存地址,而非字符串內容,因此須要經過equals()方法來判斷是否相同。spa

    接下來,來熟悉一下流程控制語句switch的使用:code

    (1)任務:根據成績分出等級對象

    (2)準備工做:switch語句的基本語法格式

switch(表達式){
   case 常量表達式1:語句1
      break;
   case 常量表達式2:語句2
      break;
   ...
   case 常量表達式n:語句n
      break;
   default:語句n+1
      break;
}

    參數說明:  

參數名稱 參數描述
表達式 必要參數,能夠是任何byte、short、int和char類型的變量
常量表達式1 若case存在,則爲必要參數,該常量表達式的值必須是一個與表達式數據類型相兼容的值
語句1 可選參數,一條或多條語句,當表達式的值與常量表達式1的值匹配時執行
常量表達式n 若case存在,則爲必要參數,該常量表達式的值必須是一個與表達式數據類型相兼容的值
語句n 可選參數,一條或多條語句,當表達式的值與常量表達式n的值匹配時執行
break 可選參數,用於跳出switch語句
default 可選參數,當全部case中的常量表達式匹配不成功時執行
語句n+1 可選參數,若沒有與表達式的值相匹配的case常量時執行

 

    (3)編程:按照百分制經過控制檯輸入成績的方式,代碼以下

import java.util.Scanner;

public class ScoreLevel{
   public static void main(String[] args){
      Scanner scan =new Scanner(System.in);
      System.out.println("請輸入成績:");
      try{
         int score = scan.nextInt();
         score = score/10;
         switch(score){
            case 10:
            case 9:
               System.out.println("成績等級爲A!");
               break;
            case 8:
               System.out.println("成績等級爲B!");
               break;
            case 7:
               System.out.println("成績等級爲C!");
               break;
            case 6:
               System.out.println("成績等級爲D!");
               break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
               System.out.println("成績等級爲E!");
               break;
        }
      catch(Exception e){
         System.out.println("輸入無效!");
      }
   }
}

    (4)運行:輸入成績可輸出相應信息

    注意:對於多個條件採起相同處理的狀況,能夠把多個case分支關聯在一塊兒,減小重複代碼,default屬於可選參數,可不採用,如上所示。break語句和continue語句都是對循環體的控制語句,前者表示跳出多層循環,結束循環,後者表示跳過其後面的語句,進入下一次循環,循環繼續。

    緊接着,來熟悉一下流程控制語句while的使用:

    (1)任務:自增運算符結合while循環實現數組的遍歷

    (2)準備工做:while循環語句基本語法格式

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

    參數說明:條件表達式決定是否進行循環,其結果爲boolean類型,即爲true或false;循環體是條件表達式結果爲true時執行的語句。

    (3)編程:

public class ColorWhile{
   public static void main(String[] args){
       String[] colorArray = {"BLUE","WHITE","YELLOW","BLACK","GREEN"};
       int index = 0;
       while(index < colorArray.length){
          System.out.println("顏色:爲"+colorArray[index++]);
       }
   }
}

    (4)運行可在控制檯看到依次輸出數組中的值

    注意:數組下標從0開始;自增和自減運算符都分前置和後置兩種,如上,「index++「會先使用變量的值,再進行遞增運算,「++index」則會先進行遞增運算,再使用變量的值,你們能夠修改上面的代碼進行驗證,看看二者之間的區別和原理,會出現數組越界的狀況。

    最後,來熟悉一下流程控制語句for的使用:

    (1)任務:輸出楊輝三角

    (2)準備工做:楊輝三角的原理(兩側數值均爲1,其餘位置的數值是其正上方的數值與左上角數值之和);for循環語句基本語法格式

for(表達式1;表達式2;表達式3){
   循環體
}

    參數說明:3個表達式均爲可選,即for循環能夠無表達式,則爲無限循環;執行順序爲:表達式1->表達式2->循環體->表達式3。

    (3)編程:經過控制檯輸入顯示的行數

import java.util.Scanner;

public class YanghuiTriangle {
   public static void main(String[] args) {
      Scanner scan =new Scanner(System.in);
      System.out.println("請輸入要輸出的行數:");
      try{
         int row = scan.nextInt();
         //建立二維數組
         int triangle[][] = new int[row][];
         for(int i=0;i<triangle.length;i++){
             //初始化第二層數組的大小
             triangle[i] = new int[i+1];
             //遍歷數組
             for(int j=0;j<=i;j++){
                 //兩側數組元素均爲1
                 if(i==0 || j==0 || i==j)
                    triangle[i][j] = 1;
                 //其餘數組元素值=正上方值+正上方左值
                 else
                    triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1];
                 //輸出數組元素
                 System.out.print(triangle[i][j]+"\t");
             }
             System.out.println();
          }
       }catch(Exception e){
           System.out.println("輸入不合規範!");
       }
   }
}

    (4)運行輸入顯示行數可輸出對應的楊輝三角

    注意:在二維數組中,第一個下標值表示行數,第二個下標值表示列數,上面建立二維數組時第二維的長度未肯定,表示第二維的長度任意、不肯定。

    以上是對流程控制中幾種經常使用的語句進行一些講解和運用,還有相對複雜的,好比嵌套循環(九九乘法表案例)等,這裏不作介紹了,你們自行學習鞏固。

相關文章
相關標籤/搜索