最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

 更新時間:2024年04月03日 11:43:54   作者:再無B~U~G  
在一個程序執(zhí)行的過程中各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的,這篇文章主要給大家介紹了關(guān)于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.順序結(jié)構(gòu)

順序結(jié)構(gòu) 

比較簡單

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 運行結(jié)果
aaa
bbb
ccc

按照代碼書寫的順序一行一行執(zhí)行, 如果調(diào)整代碼的書寫順序 , 則執(zhí)行順序也發(fā)生變化。

2.分支結(jié)構(gòu) 

2.1 if 語句

1. 語法格式 1

單分支

if(布爾表達(dá)式){
// 語句
}

2. 語法格式 2

雙分支

if(布爾表達(dá)式){
// 語句1
}else{
// 語句2
}

如果布爾表達(dá)式結(jié)果為 true ,則執(zhí)行 if 中語句,否則執(zhí)行 else 中語句。

案例:

比如:小明,如果這次考到 90 分以上,給你獎勵一個大雞腿,否則獎你一個大嘴巴子。

int score = 92;
if(score >= 90){
    System.out.println("吃個大雞腿!!!");
}else{
    System.out.println("挨大嘴巴子!!!");
}

3. 語法格式 3

多分支 

if(布爾表達(dá)式1){
// 語句1
}else if(布爾表達(dá)式2){
// 語句2
}else{
// 語句3
}

案例:

if(score >= 90){
    System.out.println("優(yōu)秀");
}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("錯誤數(shù)據(jù)");
}

【注意事項】

這里代碼風(fēng)格和c語言不一樣。

JAVA風(fēng)格:

int x = 10 ;

if ( x == 10 ) {

// 語句 1

} else {

// 語句 2

}

 懸垂 else 問題

if / else 語句中可以不加 大括號 . 但是也可以寫語句 ( 只能寫一條語句 ). 此時 else 是和最接近的 if 匹配 .但是實際開發(fā)中我們 不建議 這么寫 . 最好加上大括號 .

2.2 switch 語句

基本語法

switch ( 表達(dá)式 ){

        case 常量值 1 :{

                語句1 ;

                [ break ;]

        }

        case 常量值 2 :{

                語句2 ;

                [ break ;]

        }

        default :{

                內(nèi)容都不滿足時執(zhí)行語句 ;

                [ break ;]

        }

}

執(zhí)行流程:  

1. 先計算表達(dá)式的值

2. 和 case 依次比較,一旦有響應(yīng)的匹配就執(zhí)行該項下的語句,直到遇到 break 時結(jié)束

3. 當(dāng)表達(dá)式的值沒有與所列項匹配時,執(zhí)行 default

和c語言一樣但是switch后面括號里面不能是浮點型和布爾類型和long類型

 案例:根據(jù) day 的值輸出星期

int day = 1;
switch(day) {
    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;
}

【注意事項】

多個case后的常量值不可以重復(fù)

switch的括號內(nèi)只能是以下類型的表達(dá)式:

        基本類型:byte 、 char 、 short 、 int ,注意不能是 long類型

        引用類型:String 常量串、枚舉類型

案例:

double num = 1.0;
switch(num) {
    case 1.0:
        System.out.println("hehe");
        break;
    case 2.0:
        System.out.println("haha");
        break;
}

// 編譯出錯
Test.java:4: 錯誤: 不兼容的類型: 從double轉(zhuǎn)換到int可能會有損失
switch(num) {
^
1 個錯誤

 break 不要遺漏, 否則會失去 "多分支選擇" 的效果

案例:

int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
// break;
case 2:
System.out.println("星期二");
break;
}
// 運行結(jié)果
星期一
星期二

 switch 雖然支持嵌套, 但是很丑,一般不推薦~

3.循環(huán)結(jié)構(gòu)

3.1while 循環(huán)

 基本語法格式:

while ( 循環(huán)條件 ){

        循環(huán)語句 ;

}

循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結(jié)束循環(huán).  與c一樣相同。

案例1:

打印 1 - 10 的數(shù)字

代碼 :

int num = 1;
while (num <= 10) {
    System.out.println(num);
    num++;
}

當(dāng)一個代碼中帶有多重循環(huán)的時候 , 代碼的復(fù)雜程度就大大提高了 . 而比較復(fù)雜的代碼就更容易出錯 .后面我們會采用更簡單的辦法來解決這個問題。

注意事項

1. 和 if 類似 , while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句 . 建議還是加上 { }

2. 和 if 類似 , while 后面的 { 建議和 while 寫在同一行 .

3. 和 if 類似 , while 后面不要多寫 分號 , 否則可能導(dǎo)致循環(huán)不能正確執(zhí)行

3.2 for 循環(huán) 

【 基本語法 】

for ( 表達(dá)式① ; 布爾表達(dá)式② ; 表達(dá)式③ ){

        表達(dá)式④ ;

}

執(zhí)行過程:

表達(dá)式 1: 用于初始化循環(huán)變量初始值設(shè)置,在循環(huán)最開始時執(zhí)行,且只執(zhí)行一次

表達(dá)式 2: 循環(huán)條件,滿則循環(huán)繼續(xù),否則循環(huán)結(jié)束

表達(dá)式 3: 循環(huán)變量更新方式

執(zhí)行過程

 ①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②為false,循環(huán)結(jié)束。

 計算 5 的階乘

int result = 1;
for (int i = 1; i <= 5; i++) {
    result *= i;
}
System.out.println("result = " + result);

【注意事項】 (和while循環(huán)類似)  

1. 和 if 類似 , for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句 . 建議還是加上 { }

2. 和 if 類似 , for 后面的 { 建議和 while 寫在同一行 .

3. 和 if 類似 , for 后面不要多寫 分號 , 否則可能導(dǎo)致循環(huán)不能正確執(zhí)行 .

4. 和 while 循環(huán)一樣,結(jié)束單趟循環(huán)用 continue ,結(jié)束整個循環(huán)用 break

案例:

打印 1 - 10

int num = 1;
do {
    System.out.println(num);
    num++;
} while (num <= 10);

3.3 do while 循環(huán)(選學(xué))

特點:一定會執(zhí)行一次。

基本語法

do {

        循環(huán)語句 ;

} while ( 循環(huán)條件 );

 先執(zhí)行循環(huán)語句, 再判定循環(huán)條件,循環(huán)條件成立則繼續(xù)執(zhí)行,否則循環(huán)結(jié)束。

注意:

1. do while 循環(huán)最后的分號不要忘記

2. 一般 do while 很少用到 , 更推薦使用 for 和 while.

4 break  

break 的功能是讓循環(huán)提前結(jié)束.

代碼示例: 找到 100 - 200 中第一個 3 的倍數(shù) 

代碼:

int num = 100;
while (num <= 200) {
    if (num % 3 == 0) {
        System.out.println("找到了 3 的倍數(shù), 為:" + num);
        break;
    }
    num++;
}
// 執(zhí)行結(jié)果
//找到了 3 的倍數(shù), 為:102

 執(zhí)行到 break 就會讓循環(huán)結(jié)束。

5. continue

continue 的功能是跳過這次循環(huán), 立即進(jìn)入下次循環(huán).

代碼示例 找到 100 - 200 中所有 3 的倍數(shù)

 代碼:

int num = 100;
while (num <= 200) {
    if (num % 3 != 0) {
        num++; // 這里的 ++ 不要忘記! 否則會死循環(huán).
        continue;
    }
    System.out.println("找到了 3 的倍數(shù), 為:" + num);
    num++;
}

執(zhí)行到 continue 語句的時候 , 就會立刻進(jìn)入下次循環(huán) ( 判定循環(huán)條件 ), 從而不會執(zhí)行到下方的打印語句。

6.輸出到控制臺

基本語法:

  • System . out . println ( msg ); // 輸出一個字符串 , 帶換行
  • System . out . print ( msg ); // 輸出一個字符串 , 不帶換行
  • System . out . printf ( format , msg ); // 格式化輸出

println 輸出的內(nèi)容自帶 \n, print 不帶 \n

printf 的格式化輸出方式和 C 語言的 printf 是基本一致的。

6.1格式化字符串

轉(zhuǎn)換符

類型

舉例

效果

d

十進(jìn)制整數(shù)

("%d", 100)

100

x

十六進(jìn)制整數(shù)

("%x", 100)

64

o

八進(jìn)制整數(shù)

("%o", 100)

144

f

定點浮點數(shù)

("%f", 100f)

100.000000

e

指數(shù)浮點數(shù)

("%e", 100f)

1.000000e+02

g

通用浮點數(shù)

("%g", 100f)

100.000

a

十六進(jìn)制浮點數(shù)

("%a", 100)

0x1.9p6

s

字符串

("%s", 100)

100

c

字符

("%c", ‘1’)

1

b

布爾值

("%b", 100)

true

h

散列碼

("%h", 100)

64

%

百分號

("%.2f%%", 2/7f)

0.29%

 這個表格沒必要記住, 用到的時候根據(jù)需要查一下就行了.

7.從鍵盤輸入

使用 Scanner 讀取字符串 / 整數(shù) / 浮點數(shù)

案例:

import java.util.Scanner; // 需要導(dǎo)入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你的姓名:");
String name = sc.nextLine();
System.out.println("請輸入你的年齡:");

int age = sc.nextInt();
System.out.println("請輸入你的工資:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);
sc.close(); // 注意, 要記得調(diào)用關(guān)閉方法

輸出結(jié)果:

請輸入你的姓名:

張三

請輸入你的年齡:

18

請輸入你的工資:

1000

你的信息如下:

姓名 : 張三

年齡: 18

工資: 100

使用 Scanner 循環(huán)讀取 N 個數(shù)字,并求取其平均值(重點) 

代碼:

Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {
    int tmp = sc.nextInt();
    sum += tmp;
    num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();//關(guān)閉new打開的類

執(zhí)行結(jié)果;

// 執(zhí)行結(jié)果

10

40.0

50.5

^Z

sum = 150.5

avg = 30.1

注意事項 : 當(dāng)循環(huán)輸入多個數(shù)據(jù)的時候 , 使用 ctrl + z 來結(jié)束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).

在后續(xù) oj 題當(dāng)中,遇到 IO 類型的算法題,有各種循環(huán)輸入的要求,后序給大家介紹。

8. 猜數(shù)字游戲

游戲規(guī)則 :

系統(tǒng)自動生成一個隨機(jī)整數(shù) (1-100), 然后由用戶輸入一個猜測的數(shù)字 . 如果輸入的數(shù)字比該隨機(jī)數(shù)小 , 提示 " 低了", 如果輸入的數(shù)字比該隨機(jī)數(shù)大 , 提示 " 高了 " , 如果輸入的數(shù)字和隨機(jī)數(shù)相等 , 則提示 " 猜對了 " .

代碼:

import java.util.Random;
import java.util.Scanner;;
class Test {
    public static void main(String[] args) {
        Random random = new Random(); // 默認(rèn)隨機(jī)種子是系統(tǒng)時間
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(100);
        // System.out.println("toGuess: " + toGuess);
        while (true) {
            System.out.println("請輸入要輸入的數(shù)字: (1-100)");
            int num = sc.nextInt();
            if (num < toGuess) {
                System.out.println("低了");
            } else if (num > toGuess) {
                System.out.println("高了");
            } else {
                System.out.println("猜對了");
                break;
            }
        }
    sc.close();
    }
}

總結(jié) 

到此這篇關(guān)于JAVASE精密邏輯控制的文章就介紹到這了,更多相關(guān)JAVASE精密邏輯控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)PIFrame窗體效果的示例代碼

    Java實現(xiàn)PIFrame窗體效果的示例代碼

    在很多現(xiàn)代應(yīng)用中,常常需要使用個性化的窗體外觀,擺脫傳統(tǒng)窗口邊框的限制,無邊框、透明、圓角和陰影效果使得窗體顯得更輕巧、更具視覺吸引力,同時允許用戶自由拖拽和??看绑w,所以本文給大家介紹了如何使用Java實現(xiàn)PIFrame窗體效果,需要的朋友可以參考下
    2025-03-03
  • Java使用Cipher類實現(xiàn)加密的過程詳解

    Java使用Cipher類實現(xiàn)加密的過程詳解

    這篇文章主要介紹了Java使用Cipher類實現(xiàn)加密的過程詳解,Cipher類提供了加密和解密的功能,創(chuàng)建密匙主要使用SecretKeySpec、KeyGenerator和KeyPairGenerator三個類來創(chuàng)建密匙。感興趣可以了解一下
    2020-07-07
  • springboot接口參數(shù)為List的問題

    springboot接口參數(shù)為List的問題

    這篇文章主要介紹了springboot接口參數(shù)為List的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java垃圾回收器的方法和原理總結(jié)

    Java垃圾回收器的方法和原理總結(jié)

    本篇文章主要介紹了Java垃圾回收器的方法和原理總結(jié),Java垃圾回收器是Java虛擬機(jī)的重要模塊,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • 快速排序算法在Java中的實現(xiàn)

    快速排序算法在Java中的實現(xiàn)

    這篇文章主要介紹了快速排序算法在Java中的實現(xiàn),簡單介紹了快速排序的實現(xiàn)原理,分享了兩種實現(xiàn)代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼

    SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼

    本篇文章主要介紹了SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼,具有一定的參考價值,有需要的可以了解一下
    2017-08-08
  • SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    SpringBoot+slf4j線程池全鏈路調(diào)用日志跟蹤問題及解決思路(二)

    本文主要給大家介紹如何實現(xiàn)子線程中的traceId日志跟蹤,本文通過封裝Callable為例給大家介紹的非常詳細(xì),需要的朋友一起看看吧
    2021-05-05
  • JAVA 多線程編程之CountDownLatch使用詳解

    JAVA 多線程編程之CountDownLatch使用詳解

    當(dāng)多個線程需要協(xié)調(diào)和同步執(zhí)行任務(wù)時,Java中的CountDownLatch(倒計時門閂)是一個常用的工具類,本文將介紹 CountDownLatch 的基本原理、用法以及示例代碼,需要的朋友可以參考下
    2023-05-05
  • Java使用JNA調(diào)用DLL文件

    Java使用JNA調(diào)用DLL文件

    JNA(Java?Native?Access)是一個在?Java?中調(diào)用本地代碼的開源框架,提供了一種簡單、高效的方式來訪問本地動態(tài)鏈接庫,下面我們來看看Java如何使用JNA調(diào)用DLL文件吧
    2024-12-12
  • Java CountDownLatch完成異步回調(diào)實例詳解

    Java CountDownLatch完成異步回調(diào)實例詳解

    這篇文章主要介紹了Java CountDownLatch完成異步回調(diào)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評論

古丈县| 汶上县| 库尔勒市| 西乌| 萨迦县| 扶余县| 许昌市| 平安县| 涿州市| 安达市| 宁乡县| 彭州市| 安康市| 合水县| 平安县| 新田县| 新龙县| 大英县| 鹤峰县| 九龙坡区| 临夏市| 蕉岭县| 隆回县| 乌兰浩特市| 德化县| 新巴尔虎右旗| 九龙坡区| 宁安市| 隆尧县| 永德县| 蕲春县| 泗洪县| 磐石市| 英吉沙县| 铜鼓县| 汉沽区| 蒲城县| 博兴县| 灵丘县| 澄江县| 望奎县|