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

Java 邏輯控制詳解分析

 更新時(shí)間:2021年11月05日 15:42:50   作者:Lockey-s  
在程序開(kāi)發(fā)的過(guò)程之中一共會(huì)存在有三種程序邏輯:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),對(duì)于之前所編寫(xiě)的代碼大部分都是順序結(jié)構(gòu)的定義,即:所有的程序?qū)凑斩x的代碼順序依次執(zhí)行

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

順序結(jié)構(gòu)就是按照代碼從上往下執(zhí)行,我們運(yùn)行的程序就是從上往下的順序結(jié)構(gòu),當(dāng)遇到方法的時(shí)候,才去執(zhí)行方法。例如:

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");

在這里插入圖片描述

當(dāng)改變代碼順序的時(shí)候,輸出的結(jié)果也不一樣。例如:

System.out.println("bbb");
System.out.println("ccc");
System.out.println("aaa");

在這里插入圖片描述

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

if 語(yǔ)句

if 語(yǔ)句的基本語(yǔ)法(單判斷):

if(布爾表達(dá)式){
//條件滿足時(shí)執(zhí)行代碼
}

if 語(yǔ)句的基本語(yǔ)法(加否定):

if(布爾表達(dá)式){
//條件滿足時(shí)執(zhí)行代碼
}else{
//條件不滿足時(shí)執(zhí)行代碼
}

if 語(yǔ)句的基本語(yǔ)法(多分支):

if(布爾表達(dá)式){
//條件滿足時(shí)執(zhí)行代碼
}else if(布爾表達(dá)式){
//條件滿足時(shí)執(zhí)行代碼
}else{
//條件都不滿足時(shí)執(zhí)行代碼
}

if 語(yǔ)句當(dāng)中可以寫(xiě)很多 else if ,但是 if 和 else 只能有一個(gè)。

代碼實(shí)例 1:判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù):

int num = 10;
if (num % 2 == 0) {
    System.out.println("num 是偶數(shù)");
} else {
    System.out.println("num 是奇數(shù)");
}

在這里插入圖片描述

代碼實(shí)例2:判定一個(gè)數(shù)是正數(shù)還是負(fù)數(shù)。

int num = 10;
if (num > 0) {
    System.out.println("num 是正數(shù)");
} else if (num < 0) {
    System.out.println("num 是負(fù)數(shù)");
} else {
    System.out.println("num 是 0");
}

在這里插入圖片描述

代碼實(shí)例3:判定一年是不是閏年。

因?yàn)殚c年的規(guī)律是:如果這一年是 4 的倍數(shù),且不是 100 的倍數(shù),那么這一年就是閏年。或者這個(gè)數(shù)能整除 400 。

Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
System.out.println(i + " 是閏年");
} else {
System.out.println(i + " 不是閏年");
}

這里是通過(guò) Scanner 來(lái)輸入一個(gè)數(shù)。

在這里插入圖片描述

懸垂 else 問(wèn)題

此代碼輸出什么?

int x = 10;
int y = 10;
if (x == 20) 
 if (y == 10)
 System.out.println("aaa");
else
 System.out.println("bbb");

在這里插入圖片描述

這里什么都不輸出 ,因?yàn)檫@里就涉及到了懸垂 else 。else 只與最近的 if 相匹配,這里最近的 if 是 y==10 所以就什么都不輸出了。

所以我們平時(shí)寫(xiě)代碼,一定要加上括號(hào),這樣既方便別人閱讀代碼,也方便我們自己去修改。

switch 語(yǔ)句

基本語(yǔ)法:

switch(整數(shù)|枚舉|字符|字符串){
case 內(nèi)容1 : {
內(nèi)容滿足時(shí)執(zhí)行語(yǔ)句;
[break;]
}
case 內(nèi)容2 : {
內(nèi)容滿足時(shí)執(zhí)行語(yǔ)句;
[break;]
}
...
default:{
內(nèi)容都不滿足時(shí)執(zhí)行語(yǔ)句;
[break;]
}
}

switch 語(yǔ)句是我們常見(jiàn)的多分支語(yǔ)句,可根據(jù) switch 括號(hào)內(nèi)的變量對(duì)應(yīng)的值去執(zhí)行相應(yīng)的 case 語(yǔ)句。而且每個(gè) case 語(yǔ)句下面都要有 break 否則會(huì)繼續(xù)執(zhí)行下面的 case 語(yǔ)句。當(dāng) switch 語(yǔ)句當(dāng)中沒(méi)有匹配的 case 語(yǔ)句的時(shí)候,就會(huì)執(zhí)行 default 語(yǔ)句。switch 雖然也可以嵌套,但是嵌套之后會(huì)很亂,非常不易于閱讀代碼。所以盡量不要嵌套。

代碼示例:

int day = 7;
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("此數(shù)字不屬于星期");
        break;
}

在這里插入圖片描述

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

while 循環(huán)

基本語(yǔ)法:

while(循環(huán)條件){
循環(huán)語(yǔ)句;
}

要注意的是:循環(huán)條件是 true 就執(zhí)行循環(huán)語(yǔ)句,否則就結(jié)束循環(huán)。例如求 1 - 10 的和:

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

在這里插入圖片描述

這里就是通過(guò) while 循環(huán)來(lái)計(jì)算 1 - 10 的和。

while 循環(huán)和 if 語(yǔ)句一樣,while 下面的語(yǔ)句可以不寫(xiě) { } , 但是不寫(xiě)的時(shí)候只能支持一條語(yǔ)句。所以為了方便閱讀和后期的維護(hù),還是應(yīng)該加上括號(hào)。就像這樣:

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

在這里插入圖片描述

因?yàn)橹荒軋?zhí)行一條語(yǔ)句,所以就一直死循環(huán)。

break

在循環(huán)結(jié)構(gòu)當(dāng)中,break 也是經(jīng)常用到的。break 就是讓循環(huán)提前結(jié)束。例如:找到 1 - 10 中第一個(gè) 3 的倍數(shù)。

int num = 1;
while (num <= 10) {
    if (num % 3 == 0) {
        System.out.println("找到了 3 的倍數(shù) 為:" + num);
        break;
    }
    num++;
}

在這里插入圖片描述

執(zhí)行到 break 的時(shí)候,就會(huì)讓循環(huán)結(jié)束。但是要注意的是:如果是多層循環(huán)嵌套 break 結(jié)束的是最近的一層循環(huán)。

continue

continue 的功能是跳過(guò)這次循環(huán), 進(jìn)入下次循環(huán)。就是這次循環(huán)當(dāng)中 continue 下面的代碼不執(zhí)行,進(jìn)入下一次循環(huán)。例如:找到 100 - 200 中所有 3 的倍數(shù)。

int num = 100; 
while (num <= 200) { 
 if (num % 3 != 0) { 
 num++;
 continue; 
 } 
 System.out.println("找到了 3 的倍數(shù), 為:" + num); 
 num++; 
} 

在這里插入圖片描述

執(zhí)行到 continue 語(yǔ)句的時(shí)候, 就會(huì)立刻進(jìn)入下次循環(huán)(判定循環(huán)條件), 從而不會(huì)執(zhí)行到下方的打印語(yǔ)句,所以不是 3 的倍數(shù)的數(shù)就沒(méi)有打印出來(lái)。

for循環(huán)

語(yǔ)法:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
循環(huán)體;
}

表達(dá)式1: 用于初始化循環(huán)變量.
表達(dá)式2: 循環(huán)條件
表達(dá)式3: 更新循環(huán)變量.

相對(duì)于 while 循環(huán),for 循環(huán)會(huì)把這三個(gè)部分結(jié)合在一起,降低出現(xiàn) bug 的可能。舉例:求 1- 100 的和

int sum = 0; 
for (int i = 1; i <= 100; i++) { 
 sum += i; 
} 
System.out.println("sum = " + sum); 

在這里插入圖片描述

do while 循環(huán)

語(yǔ)法:

do{
循環(huán)語(yǔ)句;
}while(循環(huán)條件);

do while 循環(huán)是先執(zhí)行循環(huán)語(yǔ)句,在判斷循環(huán)條件,如果循環(huán)條件為 true 就繼續(xù)循環(huán),否則就退出循環(huán)。不論如何 do while 循環(huán) 都會(huì)執(zhí)行一次。循環(huán)最后的分號(hào)一定不要忘記。舉例:求 1 - 100 的和。

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

在這里插入圖片描述

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

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

相關(guān)文章

  • Java中新建一個(gè)文件、目錄及路徑操作實(shí)例

    Java中新建一個(gè)文件、目錄及路徑操作實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java中新建一個(gè)文件、目錄及路徑操作的相關(guān)資料,新建文件、目錄及路徑是我們?nèi)粘i_(kāi)發(fā)中經(jīng)常會(huì)遇到的一個(gè)需求,本文通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 詳解基于java的Socket聊天程序——客戶端(附demo)

    詳解基于java的Socket聊天程序——客戶端(附demo)

    這篇文章主要介紹了詳解基于java的Socket聊天程序——客戶端(附demo),客戶端設(shè)計(jì)主要分成兩個(gè)部分,分別是socket通訊模塊設(shè)計(jì)和UI相關(guān)設(shè)計(jì)。有興趣的可以了解一下。
    2016-12-12
  • Java連接操作Oracle數(shù)據(jù)庫(kù)代碼詳解

    Java連接操作Oracle數(shù)據(jù)庫(kù)代碼詳解

    這篇文章主要介紹了Java連接操作Oracle數(shù)據(jù)庫(kù)代碼詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • IDEA(2022.2)搭建Servlet基本框架超詳細(xì)步驟

    IDEA(2022.2)搭建Servlet基本框架超詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于IDEA(2022.2)搭建Servlet基本框架超詳細(xì)步驟,Servlet容器負(fù)責(zé)Servlet和客戶的通信以及調(diào)用Servlet的方法,Servlet和客戶的通信采用"請(qǐng)求/響應(yīng)"的模式,需要的朋友可以參考下
    2023-10-10
  • Java 中比較對(duì)象的用法小結(jié)

    Java 中比較對(duì)象的用法小結(jié)

    在 Java 中,比較對(duì)象的方法有多種多樣,每種都有其適用的場(chǎng)景,通過(guò)深入理解 equals() 方法、Comparable 接口和 Comparator 接口,我們能夠更好地處理對(duì)象之間的比較,使代碼更加靈活、清晰和健壯,本文給大家介紹Java 中比較對(duì)象的用法,感興趣的朋友一起看看吧
    2023-12-12
  • Java開(kāi)發(fā)人員需知的十大戒律

    Java開(kāi)發(fā)人員需知的十大戒律

    這篇文章主要介紹了Java開(kāi)發(fā)人員需知的十大戒律,較為詳細(xì)的總結(jié)分析了Java開(kāi)發(fā)中常見(jiàn)的注意事項(xiàng)與編程技巧,需要的朋友可以參考下
    2015-10-10
  • SpringBoot 如何編寫(xiě)配置文件

    SpringBoot 如何編寫(xiě)配置文件

    這篇文章主要介紹了SpringBoot 編寫(xiě)配置文件的兩種方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • Mybatis內(nèi)置參數(shù)之_parameter和_databaseId的使用

    Mybatis內(nèi)置參數(shù)之_parameter和_databaseId的使用

    這篇文章主要介紹了Mybatis內(nèi)置參數(shù)之_parameter和_databaseId的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring?Boot?Actuator?漏洞利用小結(jié)

    Spring?Boot?Actuator?漏洞利用小結(jié)

    spring對(duì)應(yīng)兩個(gè)版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會(huì)有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下
    2023-11-11
  • java  多線程的三種構(gòu)建方法

    java 多線程的三種構(gòu)建方法

    這篇文章主要介紹了java 多線程的三種構(gòu)建方法的相關(guān)資料,這里提供三種實(shí)現(xiàn)方法,希望大家能夠掌握,很重要的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2017-09-09

最新評(píng)論