当前位置: 首页 > article >正文

【Java】——程序逻辑控制(构建稳健代码的基石)

在这里插入图片描述

🎁个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章
🔍系列专栏:【Java】内容概括
在这里插入图片描述

在这里插入图片描述

文章目录:

  • 一.顺序结构
  • 二.分支结构
    • 1.if 语句
      • 1.1 语法格式1
      • 1.2 语法格式2
      • 1.3 语法格式3
    • 2.switch 语句
      • 2.1 基本语法
      • 2.2执行流程
      • 2.3 输出星期
      • 2.4 注意事项
  • 三.循环结构
    • 1. while 循环
      • 1.1 基本语法格式
      • 1.2【练习】
    • 2.break
    • 4.continue
    • 5.for循环
      • 5.1 基本语法
      • 5.2 练习
    • 6. do while 循环

在Java编程的世界里,逻辑控制就像是程序的“大脑”,指挥着代码按照预定的规则和路径执行。对于Java小白来说,掌握逻辑控制结构是迈向编程高手的关键一步。本文将深入探讨Java中的逻辑控制,帮助大家打下坚实的基础。

一.顺序结构

顺序结构:按照代码书写的顺序一行一行执行。

public class Test {public static void main(String[] args) {System.out.println("a");System.out.println("b");System.out.println("c");}
}

运行结果:
在这里插入图片描述

二.分支结构

1.if 语句

1.1 语法格式1

if(布尔表达式){
//语句
}

如果布尔表达式结果为true,执⾏if中的语句,否则不执⾏

eg:如果我的分数大于90,就会得到奖状

public class Test {public static void main(String[] args) {int score = 99;if(score>90){System.out.println("恭喜你,得到一个奖状");}}
}

在这里插入图片描述

1.2 语法格式2

if(布尔表达式){//语句1
}else{//语句2
}

如果布尔表达式结果为true,则执⾏if中语句,否则执⾏else中语句。

public class Test {public static void main(String[] args) {int score = 88;if(score>90){System.out.println("恭喜你,得到一个奖状");}else{System.out.println("继续努力");}}
}

在这里插入图片描述

1.3 语法格式3

if(布尔表达式1{//语句1
}else if(布尔表达式2{//语句2
}else{//语句3
}

表达式1成⽴,执⾏语句1,否则表达式2成⽴,执⾏语句2,否则执⾏语句3
eg:

• 分数在 [90, 100] 之间的,为优秀
• 分数在 [80, 90) 之前的,为良好
• 分数在 [70, 80) 之间的,为中等
• 分数在 [60, 70) 之间的,为及格
• 分数在 [ 0, 60) 之间的,为不及格
• 错误数据

public class Test {public static void main(String[] args) {int score = 100;if (score >= 90) {System.out.println("优秀");} else if (score >= 80 && score < 90) {System.out.println("良好");} else if (score >= 70 && score < 80) {System.out.println("中等");} else if (score >= 60 && score < 70) {System.out.println("及格");} else if (score >= 0 && score < 60) {System.out.println("不及格");} else {System.out.println("错误数据");}}
}

在这里插入图片描述
【练习】
1.判断奇偶

public class Test {public static void main(String[] args) {int num = 6;if (num % 2 == 0) {System.out.println("偶数");}else{System.out.println("奇数");}}
}

在这里插入图片描述
2.判断正负

public class Test {public static void main(String[] args) {int num = 8;if (num > 0){System.out.println("正数");}else if(num < 0){System.out.println("负数");}else{System.out.println("0");}}
}

在这里插入图片描述
3.判断闰年

public class Test {public static void main(String[] args) {int year = 2025;if((year % 4 == 0 && year % 100 != 0)||(year % 400 ==0)){System.out.println("闰年");}else{System.out.println("不是闰年");}}
}

在这里插入图片描述
博主在这里提醒一下,咱们的代码风格不能像C语言那样,虽然是合法的,但在Java中,推荐以上这种风格

2.switch 语句

2.1 基本语法

switch(表达式){case 常量值1{语句1[break;]}case 常量值2{语句2[break;]}...default:{内容都不满足时执行语句;[break;]}
}

2.2执行流程

  • 先计算表达式的值
  • 和case依次⽐较,⼀旦有响应的匹配就执⾏该项下的语句,直到遇到break时结束
  • 当表达式的值没有与所列项匹配时,执⾏default

2.3 输出星期

public class Test {public static void main(String[] args) {int day = 1;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("输入有误");break;}}}

在这里插入图片描述

2.4 注意事项

  • 多个case后的常量值不可以重复
  • switch的括号内只能是以下类型的表达式:
    基本类型byte、char、short、int,注意不能是long类型 ◦
    引⽤类型String常量串、枚举类型
  • break 不要遗漏,否则会失去 “多分⽀选择” 的效果 -
  • switch 不能表达复杂的条件
  • switch 虽然⽀持嵌套, 但是很丑,⼀般不推荐~
    综上,我们发现, switch 的使⽤局限性是⽐较⼤的

三.循环结构

1. while 循环

1.1 基本语法格式

while(循环条件){循环语句;}

循环条件为 true, 则执⾏循环语句; 否则结束循环.

1.2【练习】

1.打印1~10

public class Test {public static void main(String[] args) {int num = 1;while (num <= 10){System.out.println(num);num++;}}
}

在这里插入图片描述
2.计算1~100的和

public class Test {public static void main(String[] args) {int i = 1;int sum = 0;while(i <= 100){sum += i;i++;}System.out.println(sum);}
}

在这里插入图片描述
3.计算5的阶乘

public class Test {public static void main(String[] args) {int n = 1;int result = 1;while(n <= 5){result *= n;n++;}System.out.println(result);}
}

在这里插入图片描述
4.计算 1! + 2! + 3! + 4! + 5!

public class Test {public static void main(String[] args) {int x = 1;int ret = 0;while (x <= 5) {int sum = 1;int n = 1;while (n <= x) {sum *= n;n++;}ret += sum;x++;}System.out.println(ret);}
}

在这里插入图片描述

【注意】

  1. 和 if 类似, while 下⾯的语句可以不写 { } , 但是不写的时候只能⽀持⼀条语句. 建议还是加上 { }
  2. 和 if 类似, while 后⾯的 { 建议和 while 写在同⼀⾏.
  3. 和 if 类似, while 后⾯不要多写 分号, 否则可能导致循环不能正确执⾏.

2.break

break 的功能是让循环提前结束.

eg:找到 100 - 200 中第⼀个 3 的倍数

public class Test {public static void main(String[] args) {int num = 100;while(num <= 200){if(num % 3 == 0){System.out.println(num);break;}num++;}}
}

在这里插入图片描述

4.continue

ontinue 的功能是跳过这次循环, ⽴即进⼊下次循环.
eg:

public class Test {public static void main(String[] args) {int num = 100;while(num <= 200){if(num % 3 != 0){num++;continue;}System.out.println(num);num++;}}

在这里插入图片描述

5.for循环

5.1 基本语法

for(表达式1;布尔表达式2;表达式3{表达式4}

• 表达式1: ⽤于初始化循环变量初始值设置,在循环 最开始时执⾏,且只执⾏⼀次
• 表达式2: 循环条件,满则循环继续,否则循环结束
• 表达式3: 循环变量更新⽅式

5.2 练习

1.打印1-10

public class Test {public static void main(String[] args) {for (int i = 0; i <= 10; i++) {System.out.println(i);}}
}

在这里插入图片描述
2.打印1-100的和

public class Test {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}System.out.println(sum);}
}

在这里插入图片描述
3.计算 5 的阶乘

public class Test {public static void main(String[] args) {int ret = 1;for (int i = 1; i <= 5; i++) {ret *= i;}System.out.println(ret);}
}

在这里插入图片描述
4.计算 1! + 2! + 3! + 4! + 5!

public class Test {public static void main(String[] args) {int sum =0;for (int i = 1; i <= 5 ; i++) {int tmp = 1;for(int j = 1;j <= i; j++){tmp *= j;}sum +=tmp;}System.out.println(sum);}
}

在这里插入图片描述

【注意】

  1. 和 if 类似, for 下⾯的语句可以不写 { } , 但是不写的时候只能⽀持⼀条语句. 建议还是加上 { }
  2. 和 if 类似, for 后⾯的 { 建议和 while 写在同⼀⾏.
  3. 和 if 类似, for 后⾯不要多写 分号, 否则可能导致循环不能正确执⾏.
  4. 和while循环⼀样,结束单趟循环⽤continue,结束整个循环⽤break
  5. 表达式2如果缺失,代表该循环为死循环。

6. do while 循环

【基本语法】

do{
循环语句;
}while(循环条件);

先执⾏循环语句, 再判定循环条件,循环条件成⽴则继续执⾏,否则循环结束。

public class Test {public static void main(String[] args) {int num = 1;do{System.out.println(num);num++;}while(num <= 10);}
}

在这里插入图片描述

【注意事项】

  1. do while 循环最后的分号不要忘记
  2. ⼀般 do while 很少⽤到, 更推荐使⽤ for 和 while.

【总结】

在Java编程的世界里,逻辑控制就像是程序的“大脑”,指挥着代码按照预定的规则和路径执行。对于Java小白来说,掌握逻辑控制结构是迈向编程高手的关键一步。本文将深入探讨Java中的逻辑控制,帮助大家打下坚实的基础。

在这里插入图片描述

相关文章:

【Java】——程序逻辑控制(构建稳健代码的基石)

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;【Java】内容概括 文章目录&#xff1a; 一.顺序结构二.分支结构1.if 语句1.1 语法格式11.2 语法格式21.3 语法格式3 …...

QT编程之PCM音频处理

一、高级播放接口&#xff08;未压缩编码的音频文件&#xff09; ‌QMediaPlayer‌ 支持MP3/WMA等压缩格式及网络流媒体播放&#xff0c;集成媒体控制&#xff08;播放/暂停/进度调节&#xff09;需设置QAudioOutput指定输出设备&#xff0c;支持播放速度调节&#xff08;setPl…...

卫星互联网智慧杆:开启智能城市新时代​

哇哦&#xff01;在当下这个数字化浪潮正以雷霆万钧之势席卷全球的超酷时代&#xff0c;智慧城市建设已然成为世界各国你追我赶、竞相发力的核心重点领域啦&#xff01;而咱们的卫星互联网智慧杆&#xff0c;作为一项完美融合了卫星通信与物联网顶尖技术的创新结晶&#xff0c;…...

Numpy broadcasting规则

Numpy的broadcast操作是为了将两个不同形状的数组&#xff0c;通过一系列规则&#xff0c;变换成形状相同的数组&#xff0c;从而使得它们之间可以进行按元素进行的计算。 Broadcasting的机制并不复杂&#xff0c;只要记住以下几条规则就可以了&#xff1a; 1. 顺序。首先&am…...

掌握 Shopee 商品数据:用爬虫解锁无限商机

在电商的浩瀚宇宙中&#xff0c;Shopee 宛如一颗璀璨星辰&#xff0c;吸引着无数卖家与买家在此汇聚。对于电商从业者、市场调研人员或是数据分析师而言&#xff0c;获取 Shopee 店铺的商品信息就如同掌握了开启财富之门的钥匙。而爬虫技术&#xff0c;正是帮助我们高效获取这些…...

Qt-QChart实现折线图

一、介绍场景 动态查看数据变化&#xff0c;或者了解数据发展趋势&#xff0c;让数据可以形象直观展现出来&#xff0c;这里推荐使用折线图的方式展现&#xff0c;本文抛砖引玉&#xff0c;简单实现一个实例&#xff0c;效果图如下&#xff1a; 二、实现步骤 1、charts组件 …...

取消Win10锁屏界面上显示的天气、市场和广告的操作

要取消Win10锁屏界面上显示的天气、市场和广告&#xff0c;您可以按照以下步骤操作&#xff1a; 方法一&#xff1a;更改锁屏界面设置 打开“设置”&#xff1a; 点击“开始”菜单&#xff0c;然后点击齿轮状的“设置”图标。 进入“个性化”&#xff1a; 在“设置”窗口中&a…...

IoT设备测试:从协议到硬件的全栈验证体系与实践指南

一、引言&#xff1a;IoT技术浪潮下的质量挑战 根据IDC预测&#xff0c;到2027年全球IoT设备数量将突破290亿台&#xff0c;涵盖智能家居、工业物联网&#xff08;IIoT&#xff09;、智慧城市、车联网等场景。然而&#xff0c;IoT系统的复杂性远超传统嵌入式设备——硬件异构性…...

大白话详细解读React框架的diffing算法

1. Diffing 算法是什么&#xff1f; Diffing 算法是 React 用来比较虚拟 DOM&#xff08;Virtual DOM&#xff09;树的一种算法。它的作用是找出前后两次渲染之间的差异&#xff08;diff&#xff09;&#xff0c;然后只更新这些差异部分&#xff0c;而不是重新渲染整个页面。 …...

自然语言处理入门

第一章 自然语言处理入门 1 什么是自然语言处理 【什么是人工智能&#xff0c;分别对应哪几个领域】 AI是模仿甚至超越人的某项机能&#xff0c;NLP、CV、ASR NLP是机器理解并生成人类语言2 自然语言处理的发展简史 1950 -- 图灵提出“机器能思考吗”&#xff0c;划时代性的…...

Arduino示例代码讲解:Pitch follower 跟随

Arduino示例代码讲解:Pitch follower 跟随 Pitch follower代码功能代码逐行解释1. 注释部分功能:硬件连接:2. `setup()` 函数3. `loop()` 函数硬件连接**扬声器连接**:**光敏电阻连接**:**Arduino板**:运行结果修改建议视频讲解Pitch follower 这段代码是一个Arduino示例…...

从TouchDriver Pro到Touchdriver G1,Weart触觉手套全系解析:XR交互的“真实触感”如何实现?

Weart旗下的Touchdriver Pro触觉手套和Touchdriver G1触觉手套&#xff0c;凭借其技术创新&#xff0c;为用户带来了全新的触觉体验。Touchdriver Pro触觉手套通过多模态触觉反馈技术&#xff0c;提供力反馈、纹理渲染和温度提示&#xff0c;让用户在虚拟环境中感受到真实的触觉…...

华为OD机试-阿里巴巴找黄金宝箱(I)-双指针(Java 2023 B卷 100分)

题目描述 阿里巴巴在去砍柴的路上发现了强盗集团的藏宝地,藏宝地有编号从 0 到 N 的箱子,每个箱子上贴有一个数字。黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字和。第一个箱子左边部分的数字和定义为 0;最后一个宝箱右边部分的数字和定义为 0。请…...

ubuntu20如何升级nginx到最新版本(其它版本大概率也可以)

前言&#xff1a; Nginx非常常用&#xff0c;所以在网络安全方面备受“关注”。其漏洞非常多&#xff0c;要经常保持软件更新版本才能更好的保证安全。但是Ubuntu官网适配nginx非常慢&#xff0c;所以nginx官方也会推出针对主流Linux操作系统的包管理工具安装方式。 步骤&…...

排序算法实现:插入排序与希尔排序

目录 一、引言 二、代码整体结构 三、宏定义与头文件 四、插入排序函数&#xff08;Insertsort&#xff09; 函数作用 代码要点分析 五、希尔排序函数&#xff08;ShellSort&#xff09; 函数作用 代码要点分析 六、打印数组函数&#xff08;PrintSort&#x…...

UDP协议原理

UDP协议原理 本篇介绍 在前面使用UDP编程时已经基本了解了UDP的工作模式&#xff0c;也知道了UDP有三个特点&#xff1a; 无连接不可靠面向数据报 但是当时并没有具体谈论为什么UDP有以上三个特点&#xff0c;基于这个原因&#xff0c;本篇就会针对这三个原因进行介绍 UDP…...

EtherCAT转Modbus网关如何在倍福plc组态快速配置

EtherCAT转Modbus网关如何在倍福plc组态快速配置 在工业控制领域&#xff0c;EtherCAT和Modbus是两种常见的总线通信协议。EtherCAT以其高速的数据传输和灵活的网络配置被广泛应用于高性能自动化控制系统中&#xff0c;而Modbus则因其简单、稳定且兼容性强而被许多设备所支持。…...

如何设计大模型意图识别?

环境&#xff1a; 大模型 问题描述&#xff1a; 如何设计大模型意图识别&#xff1f; 解决方案&#xff1a; 1. 意图识别定义与核心任务 定义&#xff1a;意图识别&#xff08;Intent Recognition&#xff09;是从用户输入&#xff08;文本、语音等&#xff09;中解析其核…...

FPGA设计中时间单位科普

FPGA设计中时间单位主要有秒s&#xff0c;毫秒ms&#xff0c;微秒us&#xff0c;纳秒ns&#xff0c;皮秒ps&#xff0c; 使用秒s作为单位时一定要谨慎&#xff0c;因为秒s对于FPGA来说是一个很大的单位。FPGA的时钟周期通常是20ns左右&#xff0c;1秒意味着需要等待50000000个…...

DooTask在Linux的离线部署教程

DooTask在Linux的离线部署教程 下载安装包 从网盘中将安装包下载到本地&#xff0c;下载地址 通过网盘分享的文件&#xff1a;DooTask项目管理工具 链接: https://pan.baidu.com/s/1hGmLXonT4c8hLiDP1QBr8w?pwdgdp6 提取码: gdp6 通过网盘分享的文件&#xff1a;DooTask项目…...

Python实现WYY音乐下载

一、需求背景 WYY音乐作为国内主流音乐平台,其歌曲资源丰富但下载接口存在多重加密保护。本文将通过Python结合JS逆向技术,解析其核心加密逻辑,实现免费歌曲的下载功能。 二、技术难点分析 1. 接口加密机制 通过抓包分析可知,网易云核心接口使用两次加密: 第一次:获取…...

Java基础面试题学习

转换成自已的语言来回答&#xff0c;来源小林coding、沉默王二以及其它资源和自已改编。 1、概念 1、说一下Java的特点 我认为Java有很多特点 首先是平台无关性&#xff1a;Java可以实现一次编译到处运行&#xff0c;因为Java的编译器将源代码编译成字节码&#xff0c;使得该…...

【笔记】深度学习模型训练的 GPU 内存优化之旅:重计算篇

开设此专题&#xff0c;目的一是梳理文献&#xff0c;目的二是分享知识。因为笔者读研期间的研究方向是单卡上的显存优化&#xff0c;所以最初思考的专题名称是“显存突围&#xff1a;深度学习模型训练的 GPU 内存优化之旅”&#xff0c;英文缩写是 “MLSys_GPU_Memory_Opt”。…...

AI革命!蓝耘携手海螺AI视频,打造智能化视频新纪元

AI革命&#xff01;蓝耘携手海螺AI视频&#xff0c;打造智能化视频新纪元 前言 在这个信息爆炸的时代&#xff0c;视频已经成为我们获取信息、学习新知识的重要方式。而随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;AI与视频内容的结合为我们带来了全新的…...

Django+celery+flower

Djangoceleryflower Django的定时任务及可视化监控Django Django的定时任务及可视化监控 Django的定时任务&#xff0c;以及可视化监控。 Django Django&#xff1b; 首先在python中新建虚拟环境并激活 pip install virtualenv python -m venv venv source venv/bin/activa…...

MapReduce处理数据流程

&#xff08;一&#xff09;Shuffle MapReduce中的Shuffle过程指的是在Map方法执行后、Reduce方法执行前对数据进行分区排序的阶段 &#xff08;二&#xff09;处理流程 1. 首先MapReduce会将处理的数据集划分成多个split&#xff0c;split划分是逻辑上进行划分&#xff0c;…...

基于springboot的教务系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 这些年随着Internet的迅速发展&#xff0c;我们国家和世界都已经进入了互联网大数据时代&#xff0c;计算机网络已经成为了整个社会以及经济发展的巨大动能&#xff0c;各个高校的教务工作成为了学校管理事务的重要目标和任务&#xff0c;因此运用互联网技术来提高教务的…...

潮流霓虹酸性渐变液体流体扭曲颗粒边缘模糊JPG背景图片设计素材 Organic Textures Gradients Collection

这个系列将液体运动、霓虹灯和热浪扭曲提炼成一组有机纹理。渐变像水面上的油一样荡漾&#xff0c;模糊了科幻小说与自然之间的界限。这种未来主义的边缘&#xff0c;加上近乎生物的感觉&#xff0c;与正在进行的抽象数字超现实主义浪潮完美同步。 这套具有 20 种原始纹理和 20…...

现代时尚标签海报包装网站设计几何风PSAI无衬线英文字体安装包 Matahari Sans Font Family

Matahari&#xff08;英语&#xff1a;Sun&#xff09;是生命的动力源泉。与日常生活的其他部分协同作用的力量和能量的象征。这是我们人类需要的最基本的东西之一&#xff0c;就像交流一样。就像 Matahari 本身一样&#xff0c;文字的力量足以维持生计。 参考怪诞字体并受到埃…...

Spring MVC响应数据

handler方法分析 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为handler* TODO: handler需要使用RequestMapping/GetMapping系列,声明路径,在HandlerMapping中注册,供DS查找!* TODO: handler作用总结:* 1.接收请求参数(param,json,pathVariable,共享域等…...