Java基礎入門流程控制全解析:分支、循環與隨機數實戰

引言

流程控制是編程語言的核心邏輯結構,決定了程序的執行順序與邏輯判斷能力。本文以?分支結構循環結構?和?隨機數生成?為核心,結合代碼示例與底層原理,全面解析Java中流程控制的應用場景與實戰技巧。

一、分支結構

1. if分支

作用:根據條件表達式的結果(true/false)決定代碼執行路徑。

三種形式
  1. 單分支?

    if (條件) {// 條件為true時執行
    }
  2. 雙分支

    if (條件) {// 條件為true時執行
    } else {// 條件為false時執行
    }
  3. 多分支

    if (條件1) {// 條件1為true時執行
    } else if (條件2) {// 條件2為true時執行
    } else {// 所有條件均不滿足時執行
    }
    案例:成績獎勵機制
Scanner sc = new Scanner(System.in);
System.out.print("請輸入成績:");
int score = sc.nextInt();
if (score >= 95) {System.out.println("獎勵山地自行車一輛");
} else if (score >= 90) {System.out.println("獎勵游樂場玩一次");
} else if (score >= 80) {System.out.println("獎勵變形金剛玩具一個");
} else {System.out.println("胖揍一頓");
}

2. switch分支

作用:根據表達式的值匹配具體分支執行,適合離散值比較。

語法
switch (表達式) {case 值1:// 匹配值1時執行break;case 值2:// 匹配值2時執行break;default:// 無匹配時執行
}
注意事項
  • 表達式類型:支持byteshortintcharString(JDK7+)和枚舉。

  • 穿透性:若未寫break,會繼續執行后續case代碼。

  • case值唯一性:不能重復且必須為字面量。

案例:工作日備忘錄
String day = "周一";
switch (day) {case "周一":System.out.println("埋頭苦干,解決bug");break;case "周三":System.out.println("今晚啤酒、龍蝦、小燒烤");break;default:System.out.println("按部就班工作");
}

二、循環結構

1. for循環

作用:已知循環次數時,控制代碼重復執行。

語法
for (初始化語句; 循環條件; 迭代語句) {// 循環體
}
案例:求1-100的偶數和
int sum = 0;
for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}
}
System.out.println("偶數和:" + sum);

2. while循環

作用:不確定循環次數時,根據條件重復執行代碼。

語法
初始化語句;
while (循環條件) {// 循環體迭代語句;
}
案例:紙張折疊成珠峰高度
double peakHeight = 8848860;  // 珠峰高度(毫米)
double paperThickness = 0.1;  // 紙張厚度(毫米)
int count = 0;
while (paperThickness < peakHeight) {paperThickness *= 2;count++;
}
System.out.println("需折疊次數:" + count);

3. do-while循環

特點:先執行循環體,再判斷條件,至少執行一次。

語法
初始化語句;
do {// 循環體迭代語句;
} while (循環條件);
案例:用戶菜單選擇
Scanner sc = new Scanner(System.in);
int choice;
do {System.out.println("1.登錄 2.注冊 3.退出");choice = sc.nextInt();
} while (choice != 3);

三、跳轉關鍵字

1. break

作用:立即終止當前循環或switch分支。

案例:密碼驗證
Scanner sc = new Scanner(System.in);
int correctPwd = 520;
while (true) {System.out.print("請輸入密碼:");int input = sc.nextInt();if (input == correctPwd) {System.out.println("歡迎進入系統");break;} else {System.out.println("密碼錯誤");}
}

2. continue

作用:跳過當前循環的剩余代碼,進入下一次迭代。

案例:輸出1-10的非偶數
for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue;}System.out.println(i);
}

四、隨機數生成(Random類)

1. 基本使用

步驟

  1. 導包:import java.util.Random;

  2. 創建對象:Random r = new Random();

  3. 生成隨機數:int num = r.nextInt(范圍);

案例:生成1-100隨機數
Random r = new Random();
int number = r.nextInt(100) + 1;  // 1-100
System.out.println("隨機數:" + number);

2. 猜數字游戲

Random r = new Random();
int target = r.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
while (true) {System.out.print("請輸入猜測數字(1-100):");int guess = sc.nextInt();if (guess > target) {System.out.println("過大");} else if (guess < target) {System.out.println("過小");} else {System.out.println("猜中了!");break;}
}

五、總結

  • 分支結構if適合區間判斷,switch適合離散值匹配。

  • 循環結構for用于已知次數,while用于未知次數,do-while至少執行一次。

  • 跳轉關鍵字break終止循環,continue跳過當前迭代。

  • Random類:靈活生成指定范圍的隨機數,增強程序交互性。

學習建議

  • 多練習循環嵌套(如打印九九乘法表)。

  • 結合實際問題設計分支邏輯(如用戶權限驗證)。

  • 嘗試實現復雜交互邏輯(如猜數字游戲的難度分級)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72167.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72167.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72167.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis 數據持久化之RDB

Redis數據持久化策略 持久化策略之RDB RDB:在指定的時間間隔&#xff0c;執行數據集的時間點快照。 實現類似照片記錄效果的方式&#xff0c;就是把某一時刻的數據和狀態以文件的形式寫到磁盤上&#xff0c;也就是讀快照。這樣一來即使故障宕機&#xff0c;快照文件也不會丟失&…

數據分析與AI丨AI Fabric:數據和人工智能架構的未來

AI Fabric 架構是模塊化、可擴展且面向未來的&#xff0c;是現代商業環境中企業實現卓越的關鍵。 在當今商業環境中&#xff0c;數據分析和人工智能領域發展可謂日新月異。幾乎每天都有新興技術誕生&#xff0c;新的應用場景不斷涌現&#xff0c;前沿探索持續拓展。可遺憾的是&…

MyBatis - XML 操作動態 SQL

目錄 1. 前言 2. 動態插入 2.1 if 標簽 2.2 trim 標簽 2.2.1 注解完成動態 SQL 3. 動態查詢 3.1 添加 1 1 3.2 where 標簽 4. 動態更新 4.1 set 標簽 5. foreach 標簽 6. sql 標簽 & include 標簽 1. 前言 之前博文所講的 MyBatis SQL 操作, 都必須按照注解或…

【最佳實踐】Go 責任鏈模式實現參數校驗

這里我們使用責任鏈模式來創建一個參數校驗的示例。在這個示例中&#xff0c;我們將實現一個簡單的責任鏈來校驗不同的參數條件。這種模式允許我們將多個校驗步驟串聯在一起&#xff0c;以便可以在不同的條件下進行靈活的校驗。 設計思路 接口定義 (Validator) 目的&#xff1…

深入理解Tomcat:Java Web服務器的安裝與配置

大家好&#xff01;今天我們來聊聊Java Web開發中最重要的工具之一——Apache Tomcat。Tomcat是一個開源的Java Servlet容器和Web服務器&#xff0c;它是運行Java Web應用程序的核心環境。無論是開發、測試還是部署Java Web應用&#xff0c;Tomcat都是不可或缺的工具。本文將詳…

小程序酒店:如何實現智能預訂與在線支付?

在移動互聯網快速發展的今天,酒店行業面臨著前所未有的機遇與挑戰。用戶需求日益多樣化,市場競爭愈發激烈,傳統酒店預訂方式已經難以滿足現代消費者的需求。而小程序作為一種輕量化、便捷化的移動應用形式,正在成為酒店行業數字化轉型的重要工具。通過小程序開發,酒店可以…

C#實現AES-CBC加密工具類(含完整源碼及使用教程)

一、AES-CBC加密應用場景 AES&#xff08;Advanced Encryption Standard&#xff09;作為全球公認的安全加密標準&#xff0c;廣泛使用在以下場景&#xff1a; API通信加密&#xff1a;保護HTTP接口傳輸的敏感數據&#xff08;如身份令牌、支付信息&#xff09;文件安全存儲&…

docker-compose部署MongoDB分片集群

前言 MongoDB 使用 keyFile 進行 節點間身份驗證,我們需要先創建一個 keyFile 并確保所有副本集的節點使用相同的 keyFile。 openssl rand -base64 756 > mongo-keyfile chmod 400 mongo-keyfiledocker-compose部署分片集群 無密碼方式 # docker-compose-mongodb.yml s…

3-003:在 MySQL 中建索引時需要注意哪些事項?

在 MySQL 中創建索引時&#xff0c;需要注意以下事項&#xff0c;以確保索引高效且合理&#xff1a; 1. 選擇合適的索引類型 主鍵索引&#xff08;PRIMARY KEY&#xff09;&#xff1a;每個表只能有一個&#xff0c;默認是聚簇索引。唯一索引&#xff08;UNIQUE&#xff09;&…

在 Linux 系統中,區分**磁盤(物理/虛擬存儲設備)和分區(磁盤的邏輯劃分)

在 Linux 系統中&#xff0c;區分**磁盤&#xff08;物理/虛擬存儲設備&#xff09;和分區&#xff08;磁盤的邏輯劃分&#xff09;**是管理存儲的基礎。以下是詳細的區分方法和操作示例&#xff1a; 一、通過設備命名規則區分 Linux 中磁盤和分區的命名遵循特定規則&#xff…

MongoDB中的游標(Cursor)

游標&#xff08;Cursor&#xff09;在MongoDB中是一個重要的概念&#xff0c;它用于逐條遍歷查詢結果集&#xff0c;特別適用于處理大量數據時。 一、游標的定義與作用 定義&#xff1a; 游標是一種能從數據記錄的結果集中每次提取一條記錄的機制。在MongoDB中&#xff0c;游…

【從零開始學習計算機科學】編譯原理(七)運行時刻環境

【從零開始學習計算機科學】編譯原理(七)運行時刻環境 運行時刻環境存儲組織空間的棧式分配活動樹活動記錄和控制棧簡單棧式存貯分配C語言的過程調用和過程返回時的存貯管理堆式存儲分配堆式存儲分配的功能垃圾回收基于跟蹤的垃圾回收短停頓垃圾回收運行時刻環境 存儲組織 …

2025-03-08 學習記錄--C/C++-PTA 習題10-1 判斷滿足條件的三位數

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、題目描述 ?? 裁判測試程序樣例&#xff1a; #include <stdio.h> #include <math.h>int search( int n );int…

【ArcGIS】地理坐標系

文章目錄 一、坐標系理論體系深度解析1.1 地球形態的數學表達演進史1.1.1 地球曲率的認知變化1.1.2 參考橢球體參數對比表 1.2 地理坐標系的三維密碼1.2.1 經緯度的本質1.2.2 大地基準面&#xff08;Datum&#xff09;的奧秘 1.3 投影坐標系&#xff1a;平面世界的誕生1.3.1 投…

DeepSeek刷力扣輔助題單 存留記錄

最近感覺被什么東西阻擋了腳步,經大佬建議,做算法題提升一下思維 首先,我不認為算法題要死磕,因為我沒有那個天賦,但是我還是要嘴硬一下 其次,我沒有計算機基礎的學習背景,因為我是修飛機專升本來的自動化專業,24年七月幾乎零基礎學習Unity 和 C#,努力學習到現在感覺已經盡力了…

化工廠防爆氣象站:為石油化工、天然氣等領域提供安全保障

【TH-FB02】在石油化工、天然氣等高危行業中&#xff0c;安全生產是至關重要的。這些行業常常面臨著易燃易爆、有毒有害等潛在風險&#xff0c;因此&#xff0c;對氣象條件的監測和預警顯得尤為重要。化工廠防爆氣象站作為一種專門設計用于這些特殊環境的氣象監測設備&#xff…

《MySQL數據庫從零搭建到高效管理|庫的基本操作》

目錄 一、數據庫的操作 1.1 展示數據庫 1.2 創建數據庫 1.3 使用數據庫 1.4 查看當前數據庫 1.5 刪除數據庫 1.6 小結 二、常用數據類型 2.1 數值類型 2.2 字符串類型 2.3 日期類型 一、數據庫的操作 打開MySQL命令行客戶端&#xff0c;安裝完MySQL后會有兩個客戶端…

計算機考研C語言

C語言程序設計從入門到精通【2025完整版】考研復試 嵌入式 計算機二級 軟考 專升本也適用_嗶哩嗶哩_bilibili 1、第一個C程序 helloC #include <stdio.h>int main(){printf("hehe");return 0;}每個C語言程序不管有多少行代碼&#xff0c;都是從main函數開始執…

力扣hot100二刷——鏈表

第二次刷題不在idea寫代碼&#xff0c;而是直接在leetcode網站上寫&#xff0c;“逼”自己掌握常用的函數。 標志掌握程度解釋辦法?Fully 完全掌握看到題目就有思路&#xff0c;編程也很流利??Basically 基本掌握需要稍作思考&#xff0c;或者看到提示方法后能解答???Sl…

Word 小黑第2套

對應大貓42 Word1 從文件中導入新樣式 樣式組 -管理樣式 -導入導出 -關閉Normal文件 -打開文件 -修改文件 -選中所需 -復制 調整字符寬度 調整字符間距 -字體組 加寬 適當修改磅值 文字效果通過文字組修改 另起一頁&#xff0c;分隔符&#xff08;布局 -分隔符 -分節符 -下一…