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

Java之邏輯控制三大結(jié)構(gòu)使用及說明

 更新時(shí)間:2025年12月26日 09:31:34   作者:月下清融析愿  
文章介紹了Java中的邏輯控制結(jié)構(gòu),包括順序執(zhí)行、選擇執(zhí)行(if和switch語句)和循環(huán)執(zhí)行(while、for和do-while循環(huán)),此外,還討論了輸入輸出和一個(gè)簡(jiǎn)單的猜數(shù)字游戲

邏輯控制分為三部分,分別為順序執(zhí)行,選擇執(zhí)行以及循環(huán)執(zhí)行

一、順序執(zhí)行(順序結(jié)構(gòu))

即順序執(zhí)行代碼,這部分沒有什么特別要說的就簡(jiǎn)單概括一下

順序執(zhí)行是java中的默認(rèn)執(zhí)行程序,有代碼編寫順序決定執(zhí)行流程,說人話就是從上到下,從左到右依次按順序運(yùn)行(沒有特殊控制結(jié)構(gòu)的前提下)

那么,何為特殊控制結(jié)構(gòu)呢?

特殊控制結(jié)構(gòu)有分支,循環(huán),線程等,接下來我會(huì)詳細(xì)分析這些

二、選擇執(zhí)行 (分支結(jié)構(gòu))    if    switch

1.if 語句

語法格式1

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

語法格式2

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

語法格式3

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

2.練習(xí)

1.判斷一個(gè)數(shù)字是奇數(shù)還是偶數(shù)

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

2.判斷一個(gè)數(shù)字是正數(shù),負(fù)數(shù),還是零

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

3.判斷一個(gè)年份是否為閏年

int year = 2000;
if (year % 100 == 0) {
// 判定世紀(jì)閏年
if (year % 400 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
} else {
// 普通閏年
if (year % 4 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
}

3.switch 語句

執(zhí)行流程:

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

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

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

【注意事項(xiàng)】

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

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

  • 基本類型:byte、char、short、int,注意不能是long類型
  • 引用類型:String常量串、枚舉類型

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

三、循環(huán)執(zhí)行  (循環(huán)結(jié)構(gòu))  while  for   do while

1.while 循環(huán)

基本語法格式:

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

循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結(jié)束循環(huán)

代碼示例:計(jì)算 1! + 2! + 3! + 4! + 5!

int num = 1;
int sum = 0;
// 外層循環(huán)負(fù)責(zé)求階乘的和
while (num <= 5) {
int factorResult = 1;
int tmp = 1;
// 里層循環(huán)負(fù)責(zé)完成求階乘的細(xì)節(jié).
while (tmp <= num) {
factorResult *= tmp;
tmp++;
}
sum += factorResult;
num++;
}
System.out.println("sum = " + sum);

注意事項(xiàng)

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

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

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

2.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é)束

3.continue

可以跳過此次循環(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 語句的時(shí)候, 就會(huì)立刻進(jìn)入下次循環(huán)(判定循環(huán)條件), 從而不會(huì)執(zhí)行到下方的打印語句.

4.for 循環(huán)

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

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

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

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

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

5.do while 循環(huán)

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

【注意事項(xiàng)】

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

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

四、輸入輸出

基本語法

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

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

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

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

五、從鍵盤輸入

使用 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)閉方法
// 執(zhí)行結(jié)果
請(qǐng)輸入你的姓名:
張三
請(qǐng)輸入你的年齡:
18
請(qǐng)輸入你的工資:
1000
你的信息如下:
姓名: 張三
年齡:18
工資:1000.0

使用 Scanner 循環(huán)讀取 N 個(gè)數(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();
// 執(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 來結(jié)束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d)

六、猜數(shù)字游戲

要求:

系統(tǒng)自動(dòng)生成一個(gè)隨機(jī)整數(shù)(1-100), 然后由用戶輸入一個(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é)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot中application.properties與application.yml區(qū)別小結(jié)

    SpringBoot中application.properties與application.yml區(qū)別小結(jié)

    本文主要介紹了SpringBoot中application.properties與application.yml區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • Spring中使用自定義ThreadLocal存儲(chǔ)導(dǎo)致的坑及解決

    Spring中使用自定義ThreadLocal存儲(chǔ)導(dǎo)致的坑及解決

    這篇文章主要介紹了Spring中使用自定義ThreadLocal存儲(chǔ)導(dǎo)致的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java Web編程之Servlet技術(shù)詳解

    Java Web編程之Servlet技術(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了Java Web編程之Servlet技術(shù),Servlet就是一種實(shí)現(xiàn)了Servlet接口的類,它由Web容器(Tomcat/Jetty等)負(fù)責(zé)調(diào)用并創(chuàng)建,用于接收和響應(yīng)用戶請(qǐng)求,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java中throw和throws異常處理完整例子說明

    Java中throw和throws異常處理完整例子說明

    這篇文章主要給大家介紹了關(guān)于Java中throw和throws異常處理的相關(guān)資料, throw關(guān)鍵字是用于在方法內(nèi)拋出異常,而throws關(guān)鍵字是在方法聲明中指定可能拋出的異常,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Springboot集成Actuator監(jiān)控功能詳解

    Springboot集成Actuator監(jiān)控功能詳解

    這篇文章主要介紹了Springboot集成Actuator監(jiān)控功能詳解,有時(shí)候我們想要實(shí)時(shí)監(jiān)控我們的應(yīng)用程序的運(yùn)行狀態(tài),比如實(shí)時(shí)顯示一些指標(biāo)數(shù)據(jù),觀察每時(shí)每刻訪問的流量,或者是我們數(shù)據(jù)庫的訪問狀態(tài)等等,這時(shí)候就需要Actuator了,需要的朋友可以參考下
    2023-09-09
  • idea jar包沖突的排查過程

    idea jar包沖突的排查過程

    文章介紹了如何使用MavenHelper插件快速定位Java項(xiàng)目中的jar包沖突,傳統(tǒng)方法使用IDEA的Diagrams插件,但MavenHelper提供了更直觀的沖突展示和便捷的排除選項(xiàng),使用方法包括安裝插件、分析依賴、查看和處理沖突
    2025-10-10
  • Java反射的應(yīng)用之動(dòng)態(tài)代理深入理解

    Java反射的應(yīng)用之動(dòng)態(tài)代理深入理解

    這篇文章主要介紹了Java反射的應(yīng)用之動(dòng)態(tài)代理深入理解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 淺談Java中SimpleDateFormat 多線程不安全原因

    淺談Java中SimpleDateFormat 多線程不安全原因

    SimpleDateFormat是Java中用于日期時(shí)間格式化的一個(gè)類,本文主要介紹了淺談Java中SimpleDateFormat 多線程不安全原因,感興趣的可以了解一下
    2024-01-01
  • Java超詳細(xì)整理講解各種排序

    Java超詳細(xì)整理講解各種排序

    這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開發(fā)中,對(duì)排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時(shí)候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下
    2022-07-07
  • Java?超詳細(xì)講解設(shè)計(jì)模式之中的建造者模式

    Java?超詳細(xì)講解設(shè)計(jì)模式之中的建造者模式

    建造者模式,是一種對(duì)象構(gòu)建模式 它可以將復(fù)雜對(duì)象的建造過程抽象出來,使這個(gè)抽象過程的不同實(shí)現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對(duì)象。本文將通過示例講解建造者模式,需要的可以參考一下
    2022-03-03

最新評(píng)論

伊通| 嘉义市| 宁武县| 凤台县| 南漳县| 东城区| 闵行区| 新蔡县| 新沂市| 塔城市| 镇康县| 吉隆县| 三都| 轮台县| 濉溪县| 连城县| 鸡东县| 平阳县| 那坡县| 兰溪市| 怀仁县| 万盛区| 莆田市| 黑水县| 土默特左旗| 广昌县| 准格尔旗| 吉林市| 眉山市| 西平县| 绥化市| 金沙县| 舞阳县| 稻城县| 观塘区| 株洲县| 日照市| 安多县| 三门县| 兴宁市| 林西县|