Java從入門到“放棄”(精通)之旅——程序邏輯控制④

Java從入門到“放棄”(精通)之旅🚀:程序邏輯的完美理解

一、開篇:程序員的"人生選擇"

曾經的我,生活就像一段順序執行的代碼:

System.out.println("早上8:00起床");
System.out.println("洗漱");
System.out.println("吃早飯");
// ... 重復枯燥的生活

直到某天,我的代碼里加入了分支結構

if(不好好學習){System.out.println("可能要賣紅薯🍠");
}else{System.out.println("好好學習,走上人生巔峰💪");
}

從此,我的生活變成了充滿循環的奮斗史:

while(活著){學習();敲代碼();刷題();if(競賽拿獎){Score++;}
}

二、順序結構:代碼界的"直男"

在這里插入圖片描述

順序結構就像直男的思維——簡單直接,一步一個腳印:

System.out.println("第一步:起床");
System.out.println("第二步:打開IDE");
System.out.println("第三步:假裝自己在學習");

?? 警告:千萬別把第三步放到第一步前面,除非你想體驗"夢中編程"的快樂。

三、分支結構:程序員的"選擇困難癥"

在這里插入圖片描述

1. if語句:人生處處是選擇

if(熬夜時間 == 0){System.out.println("養生學霸型:早睡早起,成績優異");
}else if(熬夜時間 <= 2){System.out.println("普通學生型:偶爾熬夜,生活規律");
}else if(熬夜時間 <= 4){System.out.println("期末沖刺型:咖啡續命,筆記飛起");
}else if(熬夜時間 <= 6){System.out.println("DDL戰士型:生死時速,鍵盤冒煙");
}else{System.out.println("修仙大佬型:見過凌晨四點的校園嗎?天天見!");
}

2. switch語句:多選項的煩惱

switch(減壓方式){case "寫代碼":System.out.println("這算減壓?");break;case "改bug":System.out.println("這明明是增壓!");break;default:System.out.println("還是熬夜吧");
}

🎓 冷知識:switch不支持long類型,就像程序員不支持長時間不寫代碼一樣

四、循環結構:程序員的"復讀機模式"

在這里插入圖片描述

1. while循環:bug改不完的絕望

while(bug存在){System.out.println("我再改最后一個bug");// 此處應有break,但程序員總是忘記
}

2. for循環:優雅的計數君

for(int i=1; i<=熬夜天數; i++){System.out.println("第" + i + "天熬夜復習");if(i == 3){System.out.println("?? 警告:黑眼圈已形成");}else if(i == 5){System.out.println("???? 嚴重警告:開始靠咖啡續命");}else if(i == 7){System.out.println("💀 系統提示:您的健康值即將耗盡");}if(熬夜天數 >= 10){System.out.println("🎓 成就解鎖:獲得『考試周生存專家』稱號!");break;}
}

3. do-while循環:至少執行一次的倔強

do{System.out.println("我保證這是最后一次熬夜");
}while(咖啡因還起作用);

五、控制語句:程序員的"后悔藥"

1. break:及時止損

while(上課中){if(老師突然點名提問){System.out.println("【系統警報】檢測到危險信號!");System.out.println("執行緊急預案:");System.out.println("1. 低頭假裝記筆記");System.out.println("2. 眼神躲避術啟動");System.out.println("3. 默念'不要點我'");break; // 終止當前危機}
}

2. continue:選擇性失憶

for(一天中的時間){if(是睡覺時間){continue; // 跳過睡覺,繼續coding}寫代碼();
}

六、實戰演練:猜數字游戲 🎮

import java.util.Random;
import java.util.Scanner;public class GuessNumber {public static void main(String[] args) {Random random = new Random();Scanner sc = new Scanner(System.in);int target = random.nextInt(100) + 1; // 1-100的隨機數System.out.println("歡迎來到猜數字游戲!(開發者已偷偷把答案設為:" + target + ")");while(true){System.out.println("請輸入你的猜測(1-100):");int guess = sc.nextInt();if(guess < target){System.out.println("猜小了,再大膽點!");}else if(guess > target){System.out.println("猜大了,收著點!");}else{System.out.println("恭喜你猜對了!獎勵一朵小紅花🌸");break;}}sc.close();}
}

💡 彩蛋:把注釋掉的System.out.println("toGuess: " + toGuess);取消注釋,你就是游戲界的"內部人員"了!

七、練習題:程序員的"腦力激蕩"

  1. 年齡分段器:輸入年齡自動輸出你是少年/青年/中年/老年(溫馨提示:慎測程> 序員年齡)
import java.util.Scanner;public class AgeClassifier {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("請輸入你的年齡:");int age = scanner.nextInt();if (age < 0) {System.out.println("年齡不能為負數!");} else if (age <= 18) {System.out.println("少年:青春無敵,好好學習!");} else if (age <= 28) {System.out.println("青年:奮斗的黃金時期,加油!");} else if (age <= 55) {System.out.println("中年:家庭事業雙豐收的階段");} else {System.out.println("老年:享受生活,保持健康");}scanner.close();}
}
  1. 素數鑒定師:判斷一個數是否為素數(數學老師看了都點贊)
import java.util.Scanner;public class PrimeChecker {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("請輸入一個正整數:");int num = scanner.nextInt();if (num <= 1) {System.out.println(num + " 不是素數");return;}boolean isPrime = true;for (int i = 2; i <= Math.sqrt(num); i++) {if (num % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(num + " 是素數");} else {System.out.println(num + " 不是素數");}scanner.close();}
}   
  1. 閏年探測器:找出1000-2000年所有閏年(歷史學家都說好)
在這里插入代碼片public class LeapYearFinder {public static void main(String[] args) {System.out.println("1000-2000年之間的閏年有:");int count = 0;for (int year = 1000; year <= 2000; year++) {if (isLeapYear(year)) {System.out.print(year + " ");count++;if (count % 10 == 0) { // 每10個換一行System.out.println();}}}System.out.println("\n共計:" + count + "個閏年");}// 判斷閏年的方法public static boolean isLeapYear(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);}
}
  1. 水仙花數:找出所有水仙花數(比真花還難找的數字)
public class NarcissisticNumber {public static void main(String[] args) {System.out.println("所有的三位數水仙花數:");for (int num = 100; num < 1000; num++) {int hundreds = num / 100;int tens = (num / 10) % 10;int units = num % 10;// 計算各位數字的立方和int sum = (int)(Math.pow(hundreds, 3) + (int)(Math.pow(tens, 3)) + (int)(Math.pow(units, 3));if (sum == num) {System.out.println(num + " 是水仙花數");System.out.println("驗證:" + hundreds + "3 + " + tens + "3 + " + units + "3   = " + sum);}}}
}
  1. 二進制解剖:分析數字的二進制表示(讓你看清數字的"本質")
import java.util.Scanner;public class BinaryAnalyzer {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("請輸入一個整數:");int num = scanner.nextInt();System.out.println("原始數字:" + num);System.out.println("二進制表示:" + Integer.toBinaryString(num));// 計算1的個數int count = Integer.bitCount(num);System.out.println("二進制中1的個數:" + count);// 輸出奇數位和偶數位System.out.print("奇數位(從右往左數,第一位為1):");for (int i = 31; i >= 0; i--) {if (i % 2 == 0) { // 奇數位(因為從0開始計數)System.out.print((num >> i) & 1);}}System.out.print("\n偶數位:");for (int i = 31; i >= 0; i--) {if (i % 2 == 1) { // 偶數位System.out.print((num >> i) & 1);}}scanner.close();}
}

八、關于一些格式化字符串

在這里插入圖片描述

九、結語:代碼如人生

記住,編程就像人生:

  • 順序執行是基礎
  • 分支選擇決定方向
  • 循環堅持才能成功
  • 偶爾break是為了更好的continue

🔑🔑🔑

while(活著){學習();進步();if(遇到bug){解決它();}else{制造bug(); // 這樣才能進步}
}

在這里插入圖片描述
JavaSE往期專欄

  • Java從入門到“放棄”(精通)之旅——啟航①
  • Java從入門到“放棄”(精通)之旅——數據類型與變量②
  • Java從入門到“放棄”(精通)之旅——運算符③

在這里插入圖片描述

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

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

相關文章

學習筆記九——Rust所有權機制

&#x1f980; Rust 所有權機制 &#x1f4da; 目錄 什么是值類型和引用類型&#xff1f;值語義和引用語義&#xff1f;什么是所有權&#xff1f;為什么 Rust 需要它&#xff1f;所有權的三大原則&#xff08;修正版&#xff09;移動語義 vs 復制語義&#xff1a;變量賦值到底…

Cocos Creator Shader入門實戰(八):Shader實現圓形、橢圓、菱形等頭像

引擎&#xff1a;3.8.5 您好&#xff0c;我是鶴九日&#xff01; 回顧 Shader的學習是一條漫長的道路。 理論知識的枯燥無味&#xff0c;讓很多人選擇了放棄。然而不得不說&#xff1a;任何新知識、新領域的學習&#xff0c;本身面臨的都是問題&#xff01; 互聯網和AI給了我…

深入理解計算機操作系統(持續更新中...)

文章目錄 一、計算機系統漫游1.1信息就是位上下文 一、計算機系統漫游 1.1信息就是位上下文 源程序實際上就是一個由值0和1組成的位&#xff08;又稱為比特&#xff09;&#xff0c;八個位被組織成一組&#xff0c;稱為字節。每個字節表示程序中的某些文本字符 大部分現代計…

YOLO V8的??Anchor-Free??、??解耦頭(Decoupled Head)、損失函數定義(含??Varifocal Loss)

YOLOv8 的 ??Anchor-Free?? 設計摒棄了傳統 YOLO 系列中依賴預定義錨框&#xff08;Anchor Boxes&#xff09;的機制&#xff0c;轉而直接預測目標的中心點和邊界框尺寸。這種設計簡化了模型結構&#xff0c;降低了超參數調優的復雜度提升了檢測速度和精度。以下是其核心實…

QuarkPi-CA2 RK3588S卡片電腦:6.0Tops NPU+8K視頻編解碼+接口豐富,高性能嵌入式開發!

QuarkPi-CA2 RK3588S卡片電腦&#xff1a;6.0Tops NPU8K視頻編解碼接口豐富&#xff0c;高性能嵌入式開發&#xff01; 芯片框架 視頻介紹 https://www.bilibili.com/video/BV1btdbYkEjY 開發板介紹 核心升級&#xff0c;產品炸裂 QuarkPi-CA2卡片電腦搭載瑞芯微RK3588S芯片…

【響應式編程】Reactor 常用操作符與使用指南

文章目錄 一、創建操作符1. just —— 創建包含指定元素的流2. fromIterable —— 從集合創建 Flux3. empty —— 創建空的 Flux 或 Mono4. fromArray —— 從數組創建 Flux5. fromStream —— 從 Java 8 Stream 創建 Flux6. create —— 使用 FluxSink 手動發射元素7. generat…

從靜態綁定驅動模型到現代設備模型 —— 一次驅動架構的進化之旅

&#x1f50d; B站相應的視屏教程&#xff1a; &#x1f4cc; 內核&#xff1a;博文視頻 - 從靜態綁定驅動模型到現代設備模型 在 Linux 內核的發展歷程中&#xff0c;設備驅動結構經歷了從"硬編碼 手動注冊"的早期實現方式&#xff0c;到"設備模型統一管理&qu…

Embedding質量評估、空間塌縮、 Alignment Uniformity

Embedding質量的評估和空間塌縮的解決是自然語言處理&#xff08;NLP&#xff09;和推薦系統領域的關鍵問題。以下是綜合多篇研究的總結&#xff1a; 一、Embedding質量評估方法 基準測試與任務指標 MTEB/C-MTEB&#xff1a;使用多語言或中文的基準測試集&#xff08;如58個數據…

批量給dwg顯示略縮圖_c#插件實現(com)

如果&#xff0c;cad文件無略縮圖&#xff1a; AutoCAD2021版本以上&#xff0c;命令行輸入"netload "加載此dll插件&#xff0c;然后輸入 “lst”&#xff0c;選擇文件夾&#xff0c;即可一鍵實現給dwg增加略縮圖。 效果如下&#xff1a; 附部分代碼&#xff1a; …

嬰幼兒托育服務與管理實訓室:托育未來的基石

在社會對嬰幼兒托育服務的重視程度不斷加深的當下&#xff0c;專業托育人才的需求急劇增長。嬰幼兒托育服務與管理專業作為培育這類人才的關鍵途徑&#xff0c;要求學生熟練掌握嬰幼兒身心發展、飲食營養以及衛生保健等基礎知識&#xff0c;同時具備全面的照護與管理能力。要實…

(自用)若依生成左樹右表

第一步&#xff1a; 在數據庫創建樹表和單表&#xff1a; SQL命令&#xff1a; 商品表 CREATE TABLE products (product_id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(255) , price DECIMAL(10, 2) , stock INT NOT NULL, category_id INT NOT NULL); 商品分類…

Linux:DNS服務配置(課堂實驗總結)

遇到的問題&#xff0c;都有解決方案&#xff0c;希望我的博客能為你提供一點幫助。 操作系統&#xff1a;rocky Linux 9.5 ??一、配置DNS服務器的核心步驟?? 步驟 1&#xff1a;安裝 BIND 軟件?? ??檢查是否安裝??&#xff1a; rpm -qa | grep "^bind"…

搭建一個Spring Boot聚合項目

1. 創建父項目 打開IntelliJ IDEA&#xff0c;選擇 New Project。 在創建向導中選擇 Maven&#xff0c;確保選中 Create from archetype&#xff0c;選擇 org.apache.maven.archetypes:maven-archetype-quickstart。 填寫項目信息&#xff1a; GroupId&#xff1a;com.exampl…

若依前后端分離版運行教程、打包教程、部署教程

后端打包教程 注意&#xff1a;需要先運行redis 2、前端運行教程 2.1安裝依賴 2.2運行 打開瀏覽器查看,地址&#xff1a;http://localhost:80 3、前端打包教程 3.1打包 3.2運行打包好的文件&#xff0c;先找到打包好的文件 這是nginx的文件結構 將打包好的文件放到html目錄下…

SpringAi 會話記憶功能

在使用chatGPT&#xff0c;豆包等產品后&#xff0c;就會發現他們的會話有“記憶”功能。 那么我們用API接口的話&#xff0c;這個是怎么實現的呢&#xff1f; 屬于比較粗暴的方式&#xff0c;把之前的內容與新的提示詞一起再次發給大模型。讓我們看到他們有記憶功能。 下面介紹…

基于Python的經濟循環模型構建與可視化案例

一、代碼結構概覽 該代碼構建了一個包含經濟數據生成、可視化分析和政策模擬的交互式經濟系統仿真平臺&#xff0c;主要包括三大模塊&#xff1a; 多部門經濟數據生成&#xff1a;模擬包含產業關聯的復雜經濟數據 增強型可視化&#xff1a;提供多維度的經濟數據分析視圖 Das…

第十六屆藍橋杯大賽軟件賽省賽 Python 大學 B 組 部分題解

題面鏈接Htlang/2025lqb_python_b 個人覺得今年這套題整體比往年要簡單許多&#xff0c;但是G題想簡單了出大問題&#xff0c;預估50101015120860&#xff0c;道阻且長&#xff0c;再接再厲 A: 攻擊次數 答案&#xff1a;103&#xff1f;181&#xff1f;題目沒說明白每回合是…

C++基礎精講-05

文章目錄 1.構造函數初始化列表1.1 初始化列表的使用1.2 有參構造函數的默認值 2.對象所占空間大小2.1 大小的計算2.2 內存對齊機制 3. 析構函數3.1 基本概念3.2 總結 4.valgrind工具集4.1 介紹4.2 memcheck的使用 5. 拷貝構造函數5.1 拷貝構造函數定義5.2 淺拷貝/深拷貝5.3 拷…

文章記單詞 | 第28篇(六級)

一&#xff0c;單詞釋義 shirt /???t/ n. 襯衫&#xff1b;襯衣commonly /?k?m?nli/ adv. 通常地&#xff1b;一般地&#xff1b;普遍地pick /p?k/ v. 挑選&#xff1b;采摘&#xff1b;撿起&#xff1b;選擇&#xff1b;n. 選擇&#xff1b;鶴嘴鋤&#xff1b;精華com…

安裝低版本Pytorch GPU

網上很多教程都是自動安裝&#xff0c;不指定版本&#xff0c;其實有大問題。而且torch、torchvision、torchaudio的版本必須是對應&#xff0c;所以一旦版本不對&#xff0c;就可能會出現各種問題。 其實Pytorch官網就已經給出了安裝低版本的教程 登入Pytorch官網 點擊previo…