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 + "³ + " + tens + "³ + " + units + "³   = " + 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.mzph.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…