Java 初學 day03

小钱没有钱發表於2024-09-19

java 03

1、if判斷語句

1、定義語句1

選擇結構:
    if選擇語句
    switch選擇語句

if選擇語句:
    語句定義格式1:
        if(關係表示式){
           語句體;
        }

注意

注意事項:
    1、if小括號中的語句,可以很複雜,但是最終的結果一定是boolean型別
    2、只有當if語句體中的語句只有一行的時候,大括號才可以省略,建議永遠不要省略大括號
    3、小括號後面可以新增分號,相當於if語句擁有一個空的語句體

程式碼示例

public class IfDemo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入江川的性別:");
        String gender = sc.next();


        //A
        //B
        //A.equals(B)
        if("男".equals(gender));{
            System.out.println("去男廁所");
            System.out.println("洗手");
        }

    }
}

2、定義語句2

if語句定義格式2:
        if(關係表示式){
            語句體1;
        }else{
            語句體2;
        }

注意

注意:
    if-else語句中,只會執行其中某一個語句體,不會同時都執行!

程式碼示例

public class IfDemo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入江川的性別:");
        String gender = sc.next();


        //A
        //B
        //A.equals(B)
        if("nan".equals(gender)){
            System.out.println("去男廁所");
            System.out.println("洗手");
        }else {
            System.out.println("去女廁所");
            System.out.println("洗手");
        }

    }
}

3、定義語句3

if語句的第三種格式:
    if(關係表示式1){
        語句體1;
    }else if(關係表示式2){
        語句體2;
    }...{
        語句體n;
    }else{
        語句體n+1;
    }

程式碼示例

/*
需求:
     1、透過把學生考試成績分等級來引出if語句的第三種格式
         90-100 優秀
         80-90  好
         70-80  良
         60-70  及格
         60一下   不及格
*/

public class IfDemo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入江川的考試成績:");
        int score = sc.nextInt();

        if(score>=90 && score<=100){
            System.out.println("優秀");
        }else if(score>=80 && score<90){
            System.out.println("好");
        }else if(score>=70 && score<80){
            System.out.println("良");
        }else if(score>=60 && score<70){
            System.out.println("及格");
        }else if(score>=0 && score<60){
            System.out.println("不及格");
        }else {
            System.out.println("成績有誤!");
        }

    }
}

4、練習

//獲取三個資料中的最大值
public class IfTest1 {
    public static void main(String[] args) {
        
        int a = 4;
        int b = 9;
        int c = 6;

        if(a<b){
            if(b<c){
                System.out.println("c是最大值");
            }else {
                System.out.println("b是最大值");
            }
        }else {
            if(a>c){
                System.out.println("a是最大值");
            }else {
                System.out.println("c是最大值");
            }
        }
    }
}

2、switch語句

switch選擇語句:
     語句定義格式:
         switch(表示式){
             case 常量值1:
                 表示式1;
                 break;
             case 常量值2:
                 表示式2;
                 break;
             ...
             default:
                 表示式n;
                 break;

         }

執行流程:嚴格按照下面的流程執行。
     1、先計算表示式中的值
     2、然後拿著計算出來的值自上而下匹配所有的case,當某一個case後面的常量值與計算出來的值一樣的時候,
         執行其中的語句體,遇到break,結束整個switch語句.
     3、當所有的case都不匹配的時候,執行default中的語句體,當遇到break的時候,結束整個switch語句.

 注意:
     1、表示式的取值:byte,short,int,char,列舉,String
     2、case後面只能跟常量,不能是變數
     3、break能不能不寫?能不寫,但是會發生switch穿透!
     4、default語句能不能不寫?可以不寫,但是為了程式的嚴謹性,最好加上
     5、default語句是不是一定要放在所有case之後呢?不一定,可以放在switch語句中的任意位置

程式碼示例

public class SwitchDemo {
    public static void main(String[] args) {
        //假設我們所帶的金額,正好是購買一瓶飲料的價格,多了或少了都買不了,只有正好才可以消費
        //可樂 3,脈動 5,紅牛 7,ad鈣奶 4
        System.out.println("請輸入您帶的金額:");
        Scanner sc = new Scanner(System.in);
        int price = sc.nextInt();

        switch (price) {
            case 3:
                System.out.println("歡迎購買一瓶 可樂!");
                break;
            case 4:
                System.out.println("歡迎購買一瓶 ad鈣奶!");
                break;
            case 5:
                System.out.println("歡迎購買一瓶 脈動!");
                break;
            case 7:
                System.out.println("歡迎購買一瓶 紅牛!");
                break;
            default:
                System.out.println("沒有您所帶金額的飲料!!");
                break;
        }

    }
}

練習

/*
    輸入月份輸出季節:
        春季 3-5
        夏季 6-8
        秋季 9-11
        冬季 12-2
 */
 public class SwitchDemo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("請輸入需要檢視季節的月份:");
        int season = sc.nextInt();

        switch (season){
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("沒有該月份。。。");
                break;
        }

    }
}

3、scanner

鍵盤錄入:程式在執行過程中,使用者可以根據自己的需求輸入參運算的值

實現錄入的步驟:

​ 1、導包

import java.util.Scanner;

​ 2、建立鍵盤錄入物件

Scanner scanner = new Scanner(System.in);

​ 3、呼叫方法鍵盤錄入

​ 1)輸入整數

int i = scanner.nextInt();

​ 2)輸入字串

String i = scanner.next();

程式碼示例

public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入您的姓名: ");
        String name = sc.next();
        System.out.println("請輸入您的年齡: ");
        int age = sc.nextInt();
        System.out.println("姓名:" + name + ", 年齡:" + age);
    }
}

4、迴圈

1、for迴圈

for迴圈:

​ 語句定義格式:
​ for(初始化語句;判斷條件語句;控制條件語句){

​ 迴圈體語句;

​ }

注意事項:

​ 1、初始化條件語句,有且僅執行一遍

​ 2、初始化條件語句可以寫在for迴圈的外面,和定義在for迴圈內部時比較,作用域不同

​ 3、大括號可以省略,但是省略後只能作用在第一條語句上,建議,永遠不要省略

​ 4、判斷條件語句能否不寫?可以不寫,但是會變成死迴圈

​ 5、控制條件語句也可以不寫,但是可能會是死迴圈

一個最簡單的for死迴圈:

​ for(;😉{

​ ......

​ }

//需求:在控制檯中輸出10行helloworld
public class ForXunDemo1 {
    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");
    }
}
//用for迴圈改進
/*
	初始化語句:定義一個變數表示範圍,每迴圈一次需要改變一次  int i = 1
	判斷條件語句:10行:範圍 1-10 i<=10
	控制條件語句:i++
	迴圈體語句:System.out.println("helloworld");
*/
public class ForXunDemo1 {
    public static void main(String[] args) {
     	for (int i = 1; i <= 10;i++) {
            System.out.println("helloworld - " + i);
        }
     	
    }
}

練習:

package com.shujia.day03;

/*
    請在控制檯輸出資料1-10
    請在控制檯輸出資料10-1
    求出1-10之間資料之和
    求出1-100之間偶數和
    求出1-100之間奇數和
    求5的階乘【自己實現】
    在控制檯輸出所有的”水仙花數”,統計”水仙花數”共有多少個

 */
public class ForTest {
                public static void main(String[] args) {
                    //請在控制檯輸出資料1-10
                    for (int i = 1; i <= 10; i++) {
                        System.out.println(i);
        }
        System.out.println("------------------------");
        //請在控制檯輸出資料10-1
        for (int i = 10; i > 0; i--) {
            System.out.println(i);
        }
        System.opublic class ForTest {
            public static void main(String[] args) {
                //請在控制檯輸出資料1-10
                for (int i = 1; i <= 10; i++) {
                    System.out.println(i);
                }
                System.out.println("------------------------");

        for (int i = 1; i <= 10; i++) {
            sum += i;
        }
        System.out.println("1-10之間的和為:" + sum);
        System.out.println("------------------------");
        //求出1-100之間偶數和
        //求出1-100之間奇數和
        int ouSum = 0;
        int jiSum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                ouSum += i;
            } else {
                jiSum += i;
            }
        }
        System.out.println("1-100之間的偶數和為:" + ouSum);
        System.out.println("1-100之間的奇數和為:" + jiSum);
        System.out.println("------------------------");

        int count = 0;
        for (int i = 100; i < 1000; i++) {
            int baiWei = i / 100;
            int shiWei = i % 100 / 10;
            int geWei = i % 10;
            if ((baiWei * baiWei * baiWei + shiWei * shiWei * shiWei + geWei * geWei * geWei) == i) {
                System.out.println(i);
                count++;
            }
        }

        System.out.println("水仙花數共計 " + count + " 個");
    }
}

2、while迴圈

1、定義

while迴圈:
    語句定義格式1:
        初始化條件語句;
        while(判斷條件語句){
           迴圈體語句;
           控制條件語句;
        }

     語句定義格式2:
        初始化條件語句;
        do{
            迴圈體語句;
           控制條件語句;
        }while(判斷條件語句)

2、注意

 1、while迴圈可以和for迴圈等價轉換
 2、for迴圈和while迴圈的使用場景:
        for迴圈適合明確的範圍內迴圈  【吃葡萄🍇】
        當迴圈次數不明確獲取就是要求次數的時候,優先考慮while迴圈【喝水】

程式碼示例

public class WhileDemo1 {
    public static void main(String[] args) {
        //輸出10行hello world
        for (int i = 1; i < 0; i++) {
            System.out.println("hello world");
        }
        System.out.println("---------------------------");
        int i = 1;
        while (i < 0){
            System.out.println("hello world");
            i++;
        }
        System.out.println("---------------------------");
        int i2 = 1;
        do{
            System.out.println("hello world");
            i2++;
        }while (i2 < 0);
    }
}

練習:

package com.shujia.day03;

/*
    我國最高山峰是珠穆朗瑪峰:8848m,我現在有一張足夠大的紙張,厚度為:0.01m。
    請問,我摺疊多少次,就可以保證厚度不低於珠穆朗瑪峰的高度?

 */
public class WhileTest1 {
    public static void main(String[] args) {
        int high = 884800;
        int thickness = 1;
        int count = 0;
        while (thickness<high){
            thickness *=2;
            count++;
        }

        System.out.println("共摺疊 "+count+"次");
}

5、跳轉控制語句 方法

跳轉控制語句:
    break關鍵字
    continue
    return

1、break

	break的作用:
		跳出單層迴圈
		跳出多層迴圈
			帶標籤的跳出
			格式:標籤名: 迴圈語句
			標籤名要符合Java的命名規則

    break: 打破,打碎,終止

    使用break的注意事項:
        1、break的使用需要在特定的場景下使用才有意義
        2、break只能在switch選擇語句或者迴圈中使用
public class BreakDemo {
    public static void main(String[] args) {
//        break;

        //輸出1-10,當遇到5的時候,使用break
        for(int i=1;i<=10;i++){
            if(i==5){
                break; // 終止整個for迴圈
            }
            System.out.println(i);
        }

        System.out.println("-------------------------------------");
        //需求:當j==5的時候,使用break
        jc:for (int i = 1; i <= 10; i++) {
            lg:for (int j = 1; j <= i; j++) {
                if(j==5){
//                    break; // 終止最近的整個for迴圈
                    break jc;
                }
                System.out.print(j + "*" + i + "=" + (i * j)+"\t");
            }
            System.out.println();
        }
    }
}

2、continue

continue的使用場景:
	在迴圈語句中
	離開使用場景的存在是沒有意義的
	
continue的作用:
	單層迴圈對比break,然後總結兩個的區別
		break  退出當前迴圈
		continue  退出本次迴圈

程式碼示例

public class ContinueDemo {
    public static void main(String[] args) {
        for(int i=1;i<=10;i++){
            if(i==5){
                continue; // 結束當次迴圈,繼續下一次迴圈
            }
            System.out.println(i);
        }
    }
}

3、return

return關鍵字不是為了跳轉出迴圈體,更常用的功能是結束一個方法,也就是退出一個方法。跳轉到上層呼叫的方法。
return必須在方法中寫,一個方法只會有一個return生效,表示結束整個方法
public class ReturnDemo {
//    return; // return必須在方法中寫

    public static void main(String[] args) {
//        return; // 結束整個方法
//        System.out.println("hello world");
//        return;

        for(int i=1;i<=10;i++){
            if(i==5){
                return;
            }
            System.out.println(i);
        }
        System.out.println("hello world");
    }
}

相關文章