欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

比較簡(jiǎn)單

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

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

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

2.1 if 語(yǔ)句

1. 語(yǔ)法格式 1

單分支

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

2. 語(yǔ)法格式 2

雙分支

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

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

案例:

比如:小明,如果這次考到 90 分以上,給你獎(jiǎng)勵(lì)一個(gè)大雞腿,否則獎(jiǎng)你一個(gè)大嘴巴子。

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

3. 語(yǔ)法格式 3

多分支 

if(布爾表達(dá)式1){
// 語(yǔ)句1
}else if(布爾表達(dá)式2){
// 語(yǔ)句2
}else{
// 語(yǔ)句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("錯(cuò)誤數(shù)據(jù)");
}

【注意事項(xiàng)】

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

JAVA風(fēng)格:

int x = 10 ;

if ( x == 10 ) {

// 語(yǔ)句 1

} else {

// 語(yǔ)句 2

}

 懸垂 else 問(wèn)題

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

2.2 switch 語(yǔ)句

基本語(yǔ)法

switch ( 表達(dá)式 ){

        case 常量值 1 :{

                語(yǔ)句1 ;

                [ break ;]

        }

        case 常量值 2 :{

                語(yǔ)句2 ;

                [ break ;]

        }

        default :{

                內(nèi)容都不滿(mǎn)足時(shí)執(zhí)行語(yǔ)句 ;

                [ break ;]

        }

}

執(zhí)行流程:  

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

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

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

和c語(yǔ)言一樣但是switch后面括號(hào)里面不能是浮點(diǎn)型和布爾類(lèi)型和long類(lèi)型

 案例:根據(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;
}

【注意事項(xiàng)】

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

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

        基本類(lèi)型:byte 、 char 、 short 、 int ,注意不能是 long類(lèi)型

        引用類(lèi)型:String 常量串、枚舉類(lèi)型

案例:

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

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

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

案例:

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

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

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

3.1while 循環(huán)

 基本語(yǔ)法格式:

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

        循環(huán)語(yǔ)句 ;

}

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

案例1:

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

代碼 :

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

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

注意事項(xiàng)

1. 和 if 類(lèi)似 , while 下面的語(yǔ)句可以不寫(xiě) { } , 但是不寫(xiě)的時(shí)候只能支持一條語(yǔ)句 . 建議還是加上 { }

2. 和 if 類(lèi)似 , while 后面的 { 建議和 while 寫(xiě)在同一行 .

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

3.2 for 循環(huán) 

【 基本語(yǔ)法 】

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

        表達(dá)式④ ;

}

執(zhí)行過(guò)程:

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

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

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

執(zhí)行過(guò)程

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

 計(jì)算 5 的階乘

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

【注意事項(xiàng)】 (和while循環(huán)類(lèi)似)  

1. 和 if 類(lèi)似 , for 下面的語(yǔ)句可以不寫(xiě) { } , 但是不寫(xiě)的時(shí)候只能支持一條語(yǔ)句 . 建議還是加上 { }

2. 和 if 類(lèi)似 , for 后面的 { 建議和 while 寫(xiě)在同一行 .

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

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

案例:

打印 1 - 10

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

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

特點(diǎn):一定會(huì)執(zhí)行一次。

基本語(yǔ)法

do {

        循環(huán)語(yǔ)句 ;

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

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

注意:

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

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

4 break  

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

代碼示例: 找到 100 - 200 中第一個(gè) 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ì)讓循環(huán)結(jié)束。

5. continue

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

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

 代碼:

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

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

6.輸出到控制臺(tái)

基本語(yǔ)法:

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

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

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

6.1格式化字符串

轉(zhuǎn)換符

類(lèi)型

舉例

效果

d

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

("%d", 100)

100

x

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

("%x", 100)

64

o

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

("%o", 100)

144

f

定點(diǎn)浮點(diǎn)數(shù)

("%f", 100f)

100.000000

e

指數(shù)浮點(diǎn)數(shù)

("%e", 100f)

1.000000e+02

g

通用浮點(diǎn)數(shù)

("%g", 100f)

100.000

a

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

("%a", 100)

0x1.9p6

s

字符串

("%s", 100)

100

c

字符

("%c", ‘1’)

1

b

布爾值

("%b", 100)

true

h

散列碼

("%h", 100)

64

%

百分號(hào)

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

0.29%

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

7.從鍵盤(pán)輸入

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

案例:

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

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

輸出結(jié)果:

請(qǐng)輸入你的姓名:

張三

請(qǐng)輸入你的年齡:

18

請(qǐng)輸入你的工資:

1000

你的信息如下:

姓名 : 張三

年齡: 18

工資: 100

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

代碼:

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打開(kāi)的類(lèi)

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

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

10

40.0

50.5

^Z

sum = 150.5

avg = 30.1

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

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

8. 猜數(shù)字游戲

游戲規(guī)則 :

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

代碼:

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)時(shí)間
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(100);
        // System.out.println("toGuess: " + toGuess);
        while (true) {
            System.out.println("請(qǐng)輸入要輸入的數(shù)字: (1-100)");
            int num = sc.nextInt();
            if (num < toGuess) {
                System.out.println("低了");
            } else if (num > toGuess) {
                System.out.println("高了");
            } else {
                System.out.println("猜對(duì)了");
                break;
            }
        }
    sc.close();
    }
}

總結(jié) 

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

相關(guān)文章

  • springboot 基于Tomcat容器的自啟動(dòng)流程分析

    springboot 基于Tomcat容器的自啟動(dòng)流程分析

    這篇文章主要介紹了springboot 基于Tomcat容器的自啟動(dòng)流程分析,Spring通過(guò)注解導(dǎo)入Bean大體可分為四種方式,我們主要來(lái)說(shuō)Import的兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2020-02-02
  • Spring注解驅(qū)動(dòng)之@EventListener注解使用方式

    Spring注解驅(qū)動(dòng)之@EventListener注解使用方式

    這篇文章主要介紹了Spring注解驅(qū)動(dòng)之@EventListener注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Springboot FeignClient調(diào)用Method has too many Body parameters解決

    Springboot FeignClient調(diào)用Method has too m

    本文主要介紹了Springboot FeignClient微服務(wù)間調(diào)用Method has too many Body parameters 解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • springboot中使用Hibernate-Validation校驗(yàn)參數(shù)詳解

    springboot中使用Hibernate-Validation校驗(yàn)參數(shù)詳解

    這篇文章主要為大家介紹了springboot中使用Hibernate-Validation校驗(yàn)參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 你知道Java中的注解可以繼承嗎?

    你知道Java中的注解可以繼承嗎?

    注解想必大家都用過(guò),也叫元數(shù)據(jù),是一種代碼級(jí)別的注釋?zhuān)梢詫?duì)類(lèi)或者方法等元素做標(biāo)記說(shuō)明。那么今天我想問(wèn)大家的是類(lèi)被繼承了,注解能否繼承呢?可能會(huì)和大家想的不一樣,感興趣的可以往下看
    2022-12-12
  • Java 駝峰命名法詳解(必看篇)

    Java 駝峰命名法詳解(必看篇)

    下面小編就為大家?guī)?lái)一篇Java 駝峰命名法詳解(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • java關(guān)于并發(fā)模型中的兩種鎖知識(shí)點(diǎn)詳解

    java關(guān)于并發(fā)模型中的兩種鎖知識(shí)點(diǎn)詳解

    在本篇文章了小編給大家整理的是一篇關(guān)于java關(guān)于并發(fā)模型中的兩種鎖知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-04-04
  • 很簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理

    很簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理

    這篇文章主要以實(shí)例的方式為大家詳細(xì)介紹了簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳解springboot集成mybatis xml方式

    詳解springboot集成mybatis xml方式

    這篇文章主要介紹了詳解springboot集成mybatis xml方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • SpringBoot整合SpringSecurity認(rèn)證與授權(quán)

    SpringBoot整合SpringSecurity認(rèn)證與授權(quán)

    在項(xiàng)目開(kāi)發(fā)中,權(quán)限認(rèn)證是很重要的,尤其是一些管理類(lèi)的系統(tǒng),對(duì)于權(quán)限要求更為嚴(yán)格,本文主要介紹了SpringBoot整合SpringSecurity認(rèn)證與授權(quán),感興趣的可以了解一下
    2023-11-11

最新評(píng)論