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

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

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

1.順序結構

順序結構 

比較簡單

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

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

2.分支結構 

2.1 if 語句

1. 語法格式 1

單分支

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

2. 語法格式 2

雙分支

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

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

案例:

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

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

3. 語法格式 3

多分支 

if(布爾表達式1){
// 語句1
}else if(布爾表達式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ù)");
}

【注意事項】

這里代碼風格和c語言不一樣。

JAVA風格:

int x = 10 ;

if ( x == 10 ) {

// 語句 1

} else {

// 語句 2

}

 懸垂 else 問題

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

2.2 switch 語句

基本語法

switch ( 表達式 ){

        case 常量值 1 :{

                語句1 ;

                [ break ;]

        }

        case 常量值 2 :{

                語句2 ;

                [ break ;]

        }

        default :{

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

                [ break ;]

        }

}

執(zhí)行流程:  

1. 先計算表達式的值

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

3. 當表達式的值沒有與所列項匹配時,執(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后的常量值不可以重復

switch的括號內只能是以下類型的表達式:

        基本類型: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轉換到int可能會有損失
switch(num) {
^
1 個錯誤

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

案例:

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

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

3.循環(huán)結構

3.1while 循環(huán)

 基本語法格式:

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

        循環(huán)語句 ;

}

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

案例1:

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

代碼 :

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

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

注意事項

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

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

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

3.2 for 循環(huán) 

【 基本語法 】

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

        表達式④ ;

}

執(zhí)行過程:

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

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

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

執(zhí)行過程

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

 計算 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 后面不要多寫 分號 , 否則可能導致循環(huán)不能正確執(zhí)行 .

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

案例:

打印 1 - 10

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

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

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

基本語法

do {

        循環(huán)語句 ;

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

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

注意:

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

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

4 break  

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

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

代碼:

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

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

5. continue

continue 的功能是跳過這次循環(huá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 語句的時候 , 就會立刻進入下次循環(huán) ( 判定循環(huán)條件 ), 從而不會執(zhí)行到下方的打印語句。

6.輸出到控制臺

基本語法:

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

println 輸出的內容自帶 \n, print 不帶 \n

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

6.1格式化字符串

轉換符

類型

舉例

效果

d

十進制整數(shù)

("%d", 100)

100

x

十六進制整數(shù)

("%x", 100)

64

o

八進制整數(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

十六進制浮點數(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; // 需要導入 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(); // 注意, 要記得調用關閉方法

輸出結果:

請輸入你的姓名:

張三

請輸入你的年齡:

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();//關閉new打開的類

執(zhí)行結果;

// 執(zhí)行結果

10

40.0

50.5

^Z

sum = 150.5

avg = 30.1

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

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

8. 猜數(shù)字游戲

游戲規(guī)則 :

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

代碼:

import java.util.Random;
import java.util.Scanner;;
class Test {
    public static void main(String[] args) {
        Random random = new Random(); // 默認隨機種子是系統(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();
    }
}

總結 

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

相關文章

  • springboot 基于Tomcat容器的自啟動流程分析

    springboot 基于Tomcat容器的自啟動流程分析

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

    Spring注解驅動之@EventListener注解使用方式

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

    Springboot FeignClient調用Method has too m

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

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

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

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

    注解想必大家都用過,也叫元數(shù)據(jù),是一種代碼級別的注釋,可以對類或者方法等元素做標記說明。那么今天我想問大家的是類被繼承了,注解能否繼承呢?可能會和大家想的不一樣,感興趣的可以往下看
    2022-12-12
  • Java 駝峰命名法詳解(必看篇)

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

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

    java關于并發(fā)模型中的兩種鎖知識點詳解

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

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

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

    詳解springboot集成mybatis xml方式

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

    SpringBoot整合SpringSecurity認證與授權

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

最新評論