1. 程式人生 > >java控制流

java控制流

exti () random類 tor string ava 鍵盤 思維 1-1

目錄

  • 1、引用數據類型
  • 2、流程控制語句
    • 2.1 條件控制語句if
    • 2.2 if語句與三元運算符的互換
    • 2.3 循環語句
    • 2.4 循環嵌套
    • 2.5 跳轉語句
    • 2.6 選擇結構switch
  • 3、猜數字案例

1、引用數據類型

Scanner類
Scanner類屬於引用數據類型;
格式: 數據類型 變量名 = new 數據類型();

/*
    引用數據類型,介紹一個類 Scanner,這是應存在的類
    定義引用數據類型變量,和基本類型變量有區別

    格式:
        數據類型 變量名 = new 數據類型();
    舉例:
        Scanner sc = new Scanner();
        創建出Scanner類的變量;

    每個引用類型都有自己的功能,使用功能方式:
        變量.功能名字()

    Scanner類,作用是在命令行中接收輸入
    使用Scanner類步驟:
        1.導入包,指明類所在的文件夾,關鍵字import;
        2.公式,創建出Scanner類型變量;
        3.變量,使用Scanner類中的功能,完成鍵盤輸入;
*/
import java.util.Scanner;
public class Scanner_Reference{
    public static void main(String[] args){

        // 創建出Scanner類變量
        Scanner sc = new Scanner(System.in);

        // 功能1:nextInt()接收鍵盤輸入,保證輸入的是整數;
        // 功能接收的數據就是整數,功能運行後的結果就是整數類型
        int i = sc.nextInt();
        System.out.println(i);

        // 功能2:next()接收鍵盤輸入的字符串
        String s = sc.next();
        System.out.println(s);
    }
}

Random類

/*
    java中的引用類型  Random類作用是產生隨機數
    步驟:
        1.導入包,Random類,也在java.util文件夾中
        2.公式:創建出Random類型的變量
        3.變量:調用Random類中的功能,產生隨機數;

    Random類中,nextInt()產生一個隨機數,結果是int類型;
        nextInt(寫一個整數),產生的隨機數在0 —— 指定的整數之間的隨機數;
        例如,nextInt(100),則範圍在0-99

    偽隨機數:這種隨機數是根據寫好的算法生成的一個偽隨機數;
*/
import java.util.Random;
public class Random_Reference{
    public static void main(String[] args){
        // 創建一個Random類型的變量
        Random rand = new Random();

        // 功能1:調用Random類中的功能,產生一個隨機整數;
        int i = rand.nextInt(100);
        System.out.println(i);

        // 功能2:調用Random類的功能,產生一個隨機浮點數;
        double d = rand.nextDouble();
        System.out.println(d);
    }
}

2、流程控制語句

2.1 條件控制語句if

if語句
if(條件語句){ 執行語句; ...}

/*
    if語句:
        編碼格式
        
    格式:
        if(條件語句){
            if語句的執行體,即執行語句;
        }
            條件語句:必須是布爾類型 1==1  true||false
            執行體:當if中的條件為true時,執行這個執行體;
                    當if中的條件為false時,什麽也不做;
*/
public class if_control{
    public static void main(String[] args){
        int i = 5;
        if(i >= 5){
            System.out.println("我是"+i+"號");
            i++;
        }
        System.out.println("我號碼增大: "+i);
       // System.out.println(i);
    }
}

if...else語句
格式:if(條件語句){執行語句1;}else{執行語句2;}

/*
    if...else 語句格式
        編寫格式
            if(條件){
                if的執行體
            }
            else{
                else的執行體
            }
        當if中的條件為true時,執行if的執行體;
        當if中的條件為false時,執行else的執行體;
*/
public class ifelse_control{
    public static void main(String[] args){
        int i = 25;
        
        if(i%2 == 0){
            System.out.println(i+"是偶數");
        }
        else{
            System.out.println(i+"是奇數");
        }
    }
}

if...(else if)...else語句

/*
    if...elseif...if 語句
    適合在程序中,實現多條件的判斷,條件的個數沒有限制;
    編寫格式:
        if(條件){
            執行體1;
        }
        else if(條件){
            執行體2;
        }
        else{
            執行體3;
        }
*/
public class if_elseif_else{
    public static void main(String[] args){
        //典型案例,成績分類
        int i = 88;
        
        if(i>=90){
            System.out.println(i+"是優秀");
        }
        else if(i>+80){
            System.out.println(i+"是良好");
        }
        else if(i>=70){
            System.out.println(i+"是中等");
        }
        else if(i>=60){
            System.out.println(i+"是及格");
        }
        else{
            System.out.println(i+"不及格");
        }
    }
}

2.2 if語句與三元運算符的互換

/*
    if語句和三元運算符的替換
    要求:計算兩個數的最大值
    例如:兩個整數比較大小
    
    使用if和三元運算符的情況:
        (1)判斷條件多,則使用if;
        (2)三元,必須是有結果的,if可以沒有結果;
*/
public class if_Ternary_replace{
    public static void main(String[] args){
        int i = 5;
        int j = 5;
        
        // 使用if語句,判斷出最大值
        if(i>j){
            System.out.println(i+"是最大值");
        }
        else{
            System.out.println(j+"是最大值");
        }
        
        // 使用三元運算實現
        int k = i>j?i:j;
        System.out.println(k+"是最大值");
    }
}

2.3 循環語句

while循環

/*
    While循環:
        編碼格式:
            while(條件){
                循環體
            }
            
            條件:當條件是true,就執行循環體,執行完循環體後,程序再次判斷條件是否為true,如果是則繼續執行循環體,否則循環結束;
            循環體:循環體和if執行體一樣,都是語句;
*/
public class while_circle{
    public static void main(String[] args){
        
        int i = 1;
        while(i<7){
            System.out.println("互聯網思維"+i);
            i++;
        }
    }
}

for循環

/*
    for循環
        編碼格式
            for(初始化變量; 條件; 增量){
                循環體
            }
            
            初始化變量:定義變量,作用,控制循環的次數;
            條件:當條件是true,執行循環體,條件是false,結束循環
            增量:變量自增情況,例如:i++,i=i+2
*/
public class for_circle{
    public static void main(String[] agrs){
        // 定義變量,用於求階乘
        double factorial = 1;
        int i,j=0;
        
        // for循環
        for(i=10; i>0; i--){
            System.out.println(i);
            factorial = factorial*i;
            j++;
        }
        System.out.println(‘/n‘+j+"的階乘是"+factorial);
    }
}

do...while循環

/*
    do...while循環
        編寫格式:
            do{
                循環體;
            }while(條件);
            
        特點:無條件先執行一次;
*/
public class do_while_circle{
    public static void main(String[] args){
        int i = 1;
        do{
            System.out.println("x="+i);
            i++;
        }while(i<10);
    }
}

死循環

while死循環;while(true){}
for死循環;for(;true;){}

2.4 循環嵌套

/*
    循環嵌套:
    for(){
        for(){
            循環體
        }
        (循環體)——可以不存在
    }
    總循環次數=外循環次數*內循環次數;
    內循環是外循環的循環體;外循環控制行數,內循環控制每行個數;
*/

打印偏右三角形:

public class for_Nesting{
    public static void main(String[] args){
        // 打印由星星組成的三角形
        for(int i=0; i<9; i++){
            for(int j=0; j<5; j++){
                
                if(i<=4){
                    if(j<=i)
                        System.out.print("* ");
                }
                else{
                    if(j>=i-4)
                        System.out.print("* ");
                }
            }
            System.out.println();
        }
    }
}

輸出結果為:

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

打印出菱形

public class for_Nesting{
    public static void main(String[] args){
        // 打印由星星組成的菱形
        for(int i=0; i<9; i++){
            if(i<5){
                for(int k=4-i; k>0; k--)
                    System.out.print(" ");
            }
            else{
                for(int k=i-4; k>0; k--)
                    System.out.print(" ");
            }
            for(int j=0; j<5; j++){
                
                if(i<=4){
                    if(j<=i)
                        System.out.print("* ");
                }
                else{
                    if(j>=i-4)
                        System.out.print("* ");
                }
            }
            System.out.println();
        }
    }
}

輸出結果為:

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

2.5 跳轉語句

Break語句

/*
    break 關鍵字
    作用於循環中,終止循環的作用;
    但是,break終止的是所在位置的循環,但是不能終止以外的循環;

    switch語句中的表達式的數據類型,是有要求的
    JDK1.0 - 1.4 數據類型接收 byte short int char
    JDK1.5       數據類型接收 byte short int char enum(枚舉)
    JDK1.7       數據類型接收 byte short int char enum(枚舉) string
*/
public class break_jump{
    public static void main(String[] args){
        for(int i=0; i<10; i++){
            for(int j=0; j<10; j++){
                System.out.print("j="+j);
                break;
            }
            System.out.println("i="+i);
        }      
    }
}

有一種break能夠終止指定循環位置:

public class break_jump{
    public static void main(String[] args){
        a:for(int i=0; i<10; i++){
            for(int j=0; j<10; j++){
                System.out.print("j="+j);
                break a;
            }
            System.out.println("i="+i);
        }      
    }
}

continue語句

/*
    continue關鍵字
    作用是終止本次循環,進入到下一個循環;
    
*/
public class continue_jump{
    public static void main(String[] args){
        for(int i=1; i<10; i++){
            if(i%5!=0){
                continue;
            }
            else{
                System.out.println("5的倍數有:"+i);
            }
        }        
    }
}

2.6 選擇結構switch

/*
    選擇結構   switch語句
    編寫格式
        switch(表達式){
            case 常量1:
                要執行的語句;
            break 常量2;

            case 常量2:
                要執行的語句;
            break;

            case 常量3:
                要執行的語句;
            break;

            default:
                要執行的語句;
            break;
        }

        執行流程:表達式和case後面的常量進行比較
            匹配到哪個case常量,就執行對應語句;遇到break後,就結束;
*/
public class switch_opt{
    public static void main(String[] args){
        // 定義變量,保存星期位
        int week = 6;
        // switch語句
        switch(week){
            case 1:
                System.out.println("星期"+week);
            break;

            case 2:
                System.out.println("星期"+week);
            break;

            case 3:
                System.out.println("星期"+week);
            break;

            case 4:
                System.out.println("星期"+week);
            break;

            case 5:
                System.out.println("星期"+week);
            break;

            case 6:
                System.out.println("星期"+week);
            break;

            default:
                System.out.println("星期"+week);
            break;
        }
    }
}

case語句

switch特性:case穿透性;(不管前面的case,直接往後執行,即不匹配case,就往下走)
如果多個case語句的執行語句是一樣的,則該執行語句只需要書寫一次即可。
case 1 case 2 ... case 5輸出結果相同,則可以寫成:

switch(week){
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
                System.out.println("工作日");
        break;

        case 6:
        case 7:
                System.out.println("休息日");
        break;
}

3、猜數字案例

/*
    在一定範圍內猜數字
    (1)隨機數生成1-100的固定數,用Random;
            鍵盤輸入,用Scanner;
    (2)作比較,和固定數做比較,用if結構;
    (3)不斷猜數字,直到猜正確,用while結構;
*/
import java.util.Random;
import java.util.Scanner;
public class guess_number{
    public static void main(String[] args){
        System.out.println("猜數字遊戲開始了");
        System.out.println("輸入1-100的數字:");
        // 創建Random類
        Random rand = new Random();
        int randNumber = rand.nextInt(100)+1;  //使用功能nextInt()獲取數字輸入;
        
        // 創建Scanner類變量
        Scanner sc = new Scanner(System.in);
        
        while(true){
            int number = sc.nextInt();
            if(number>randNumber){
                System.out.println("猜大了");
            }
            else if(number<randNumber){
                System.out.println("猜小了");
            }
            else{
                System.out.println("恭喜你,猜中了");
                break;
            }
        }
    }
}

java控制流