1. 程式人生 > >04.選擇語句與循環語句

04.選擇語句與循環語句

沒有 if 語句 int() demo div exti 對象 sys ges

一、鍵盤錄入數據

源碼程序:

/*
為了是程序更靈活,引入鍵盤錄入模塊
    如何實現鍵盤錄入?
        A:導包
            格式:
                import java.util.Scanner
        B:創建鍵盤錄入對象
            格式:
                Scanner sc = new Scanner(System.in)
        C:通過對象獲取數據
            格式:
                int x = sc.nextInt()
*/

import java.util.Scanner;
class ScannerDemo { public static void main(String[] args) { //創建鍵盤錄入對象 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個整數:"); int x = sc.nextInt(); System.out.println("你輸入的數據是:"+x); } }

運行結果:

技術分享

二、流程控制語句

  • 順序結構
  • 選擇結構
  • 循環結構

  1.Java提供了兩種選擇結構語句:

  • if 語句
  • switch 語句

if 語句的三種格式:

格式1: 

/*
        
    if語句的格式:
        if(比較表達式) {
            語句體;
        }
        
        執行流程:
            先計算比較表達式的值,看其返回值是true還是false。
            如果是true,就執行語句體;
            如果是false,就不執行語句體;
*/

舉例說明:

class IfDemo {
    public static void main(String[] args) {
        
int x = 10; if(x == 10) { System.out.println("x等於10"); } if(x == 20) { System.out.println("x等於20"); } System.out.println("over"); } }

格式2:

/*
    if語句格式2:
        if(比較表達式) {
            語句體1;
        }else {
            語句體2;
        }
    執行流程:
        首先計算比較表達式的值,看其返回值是true還是false。
        如果是true,就執行語句體1;
        如果是false,就執行語句體2;
        
    註意:else後面是沒有比較表達式的,只有if後面有。
*/

舉例說明:

class IfDemo {
    public static void main(String[] args) {
        //判斷兩個數據是否相等
        
        int a = 10;
        int b = 20;
        
        if(a == b) {
            System.out.println("a等於b");
        }else {
            System.out.println("a不等於b");
        }
    }
}

格式3:

/*
    if語句的格式3:
        if(比較表達式1) {
            語句體1;
        }else if(比較表達式2) {
            語句體2;
        }else if(比較表達式3) {
            語句體3;
        }
        ...
        else {
            語句體n+1;
        }
        
    執行流程:
        首先計算比較表達式1看其返回值是true還是false,
        如果是true,就執行語句體1,if語句結束。
        如果是false,接著計算比較表達式2看其返回值是true還是false,
        
        如果是true,就執行語句體2,if語句結束。
        如果是false,接著計算比較表達式3看其返回值是true還是false,
        ...
        
        如果都是false,就執行語句體n+1。
*/

舉例說明:

//需求:鍵盤錄入一個成績,判斷並輸出成績的等級。
        /*
            90-100 優秀
            80-90  好
            70-80  良
            60-70  及格
            0-60   不及格
        */
import java.util.Scanner;

class IfDemo {
    public static void main(String[] args){
        //創建鍵盤錄入對象
        Scanner sc = new Scanner(System.in);
        //錄入數據
        System.out.println("你輸入的成績是:");
        int x = sc.nextInt();
        
        if(x>=90 && x<=100) {
            System.out.println("優秀");
        }else if(x>=80 && x<90) {
            System.out.println("好");
        }else if(x>=70 && x<80) {
            System.out.println("良");
        }else if(x>=60 && x<70) {
            System.out.println("及格");
        }else if(x>=0 && x<60) {
            System.out.println("不及格");
        }else {
            System.out.println("你輸入成績有誤!");
        }
    }
}

運行結果:

技術分享

switch 語句

/*
    switch語句格式:
        switch(表達式) {
            case 值1:
                語句體1;
                break;
            case 值2:
                語句體2;
                break;
            ...
            default:
                語句體n+1;
                break;
        }
        
    switch語句的註意事項:
        A:case後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的
*/
import java.util.Scanner;

class SwitchDemo {
    public static void main(String[] args) {
        //創建鍵盤錄入對象
        Scanner sc = new Scanner(System.in);
        
        //控制鍵盤錄入數據
        System.out.println("請輸入一個數據(1-7):");
        int week = sc.nextInt(); //3
        
        //定義常量
        //int number = 3;
        //然後把case後面的值改為number,就會報錯
        
        //switch判斷語句
        switch(week) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("你輸入的數據有誤");
                //break;
        }
    }
}

  2.Java提供了三種循環結構語句:

  • for 循環語句
  • while 循環語句
  • do...while循環語句

for 循環語句舉例說明:

/*
    循環語句:for循環,while循環,do...while循環。
    
    for循環格式:
        for(初始化語句;判斷條件語句;控制條件語句) {
            循環體語句;
        }
        
        執行流程:
            A:執行初始化語句
            B:執行判斷條件語句,看其返回值是true還是false
                如果是true,就繼續執行
                如果是false,就結束循環
            C:執行循環體語句;
            D:執行控制條件語句
            E:回到B繼續。
            
    註意事項:
        A:判斷條件語句無論簡單還是復雜結果是boolean類型。
        B:循環體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。
        C:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
            
    需求:請在控制臺輸出10次"HelloWorld"
*/
class ForDemo {
    public static void main(String[] args) {
        //最原始的做法
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("----------");
        
        //這種做法不好,代碼的重復度太高。
        //所以呢,我們用循環改進
        for(int x=1;x<=10;x++) {
            System.out.println("HelloWorld");
        }
    }
}

while循環語句舉例說明:

/*
    while循環的基本格式:
        while(判斷條件語句) {
            循環體語句;
        }
        
        擴展格式:
        
        初始化語句;
        while(判斷條件語句) {
             循環體語句;
             控制條件語句;
        }
        
        通過這個格式,我們就可以看到其實和for循環是差不多的。
        
        for(初始化語句;判斷條件語句;控制條件語句) {
            循環體語句;
        }
*/
class WhileDemo {
    public static void main(String[] args) {
        //輸出10次"HelloWorld"
        //for語句版
        for(int x=0; x<10; x++) {
            System.out.println("HelloWorld");
        }
        System.out.println("--------------");
        //while語句版
        int x=0;
        while(x<10) {
            System.out.println("HelloWorld");
            x++;
        }
        
    }
}

總結:上訴代碼可以看出for循環和while循環之間可以進行自由的切換

do...while循環語句舉例說明:

/*
    do...while循環的基本格式:
        do {
            循環體語句;
        }while(判斷條件語句);
        
        擴展格式;
        初始化語句;
        do {
            循環體語句;
            控制條件語句;
        }while(判斷條件語句);
*/
class DoWhileDemo {
    public static void main(String[] args) {
        //輸出10次HelloWorld。
        int x = 0;
        do {
            System.out.println("HelloWorld");
            x++;
        }while(x<10);
        
        System.out.println("--------------");
        
        //求和1-100
        int sum = 0;
        int a = 1;
        do {
            sum += a;
            a++;
        }while(a<=100);
        
        System.out.println(sum);
    }
}

總結:do...while 和while的區別,以及與for循環之間的自由切換

/*
    循環語句的區別:
        do...while循環至少執行一次循環體。
        而for,while循環必須先判斷條件是否成立,然後決定是否執行循環體語句。
        
    那麽,我們一般使用哪種循環呢?
        優先考慮for,其次考慮while,最後考慮do...while
*/

三、跳轉語句

  • break(跳出單層循環)
  • continue(跳出一次循環,進入下次循環)
  • return(結束整個方法)

舉例說明:

04.選擇語句與循環語句