揭秘控制流的秘密:Java中的if, for, while,你真的会用吗?

在编程的浩瀚宇宙中,控制流语句如同星辰,引领着代码的航向。今天,我们将深入探讨Java中至关重要的控制流语句——if, for, while,以及它们的变体。无论你是一名初学者,还是有着丰富经验的开发者,这篇文章都将带你领略控制流的深层魅力,让你的代码更加高效、优雅。

控制流,程序的灵魂

控制流语句,是编程语言中用于控制程序执行路径的核心构造。它们赋予了程序决策和重复执行的能力,使得代码能够根据不同的条件和需求动态地调整行为。掌握控制流,就如同掌握了驾驭代码的缰绳,能够让你的程序灵活应对各种复杂的场景。

第一章:if语句的精妙

1.1 基础语法与应用

if (条件) {// 条件为真时执行的代码
}

1.2 实例:温度预警系统

假设我们需要开发一个温度预警系统,当环境温度超过30℃时,系统将发出警报。

double temperature = 32.5;
if (temperature > 30) {System.out.println("警告:温度过高!");
}

1.3 扩展:if-else-if链与三元运算符

在更复杂的条件下,if-else-if链和三元运算符(condition ? valueIfTrue : valueIfFalse)提供了更多的灵活性。

int score = 85;
String grade;if (score >= 90) {grade = "A";
} else if (score >= 80) {grade = "B";
} else if (score >= 70) {grade = "C";
} else {grade = "F";
}// 或者使用三元运算符
grade = score >= 90 ? "A" : (score >= 80 ? "B" : (score >= 70 ? "C" : "F"));

第二章:for循环的力量

2.1 基本结构

for (初始化; 终止条件; 更新操作) {// 循环体
}

2.2 实例:计算阶乘

计算5的阶乘(5!)。

int result = 1;
for (int i = 1; i <= 5; i++) {result *= i;
}
System.out.println("5的阶乘是:" + result);

2.3 扩展:增强型for循环

Java还提供了增强型for循环(foreach),用于遍历数组或集合。

int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {System.out.println(num);
}

第三章:while循环的耐心

3.1 基本语法

while (条件) {// 循环体
}

3.2 实例:斐波那契数列

生成斐波那契数列的前10个数字。

int n1 = 0, n2 = 1, n3, count = 10;
while (count-- > 0) {System.out.print(n1 + " ");n3 = n1 + n2;n1 = n2;n2 = n3;
}

3.3 扩展:do-while循环

do-while循环至少执行一次循环体,然后检查条件。

int number = 1;
do {System.out.println(number);number++;
} while (number <= 5);

第四章:控制流的高级技巧

4.1 break与continue

break用于立即退出循环,而continue则跳过当前迭代,进入下一次循环。

for (int i = 0; i < 10; i++) {if (i == 5) {break; // 立即退出循环}System.out.println(i);
}for (int i = 0; i < 10; i++) {if (i % 2 == 0) {continue; // 跳过偶数}System.out.println(i);
}

4.2 switch-case语句

switch-case语句用于处理多个条件的情况,可以替代冗长的if-else-if链。

int dayOfWeek = 3;
switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;default:System.out.println("未知日期");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:入门基础

目录 C版本 C参考文档 C输入输出 C对比C 命名空间 相较C语言它存在的意义 命名空间的使用 缺省参数 全缺省 半缺省 函数重载 引用 注意事项 引用和指针的关系&#xff08;区别&#xff09; inline 为什么要有inline&#xff1f; 注意事项 nullptr C版本 时间…

今天小编强烈推荐几款国产APP!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 今天小编强烈推荐几款国产APP,算得上是国产之光。如果能帮助到大家&#xff0c;别忘了给小编点点赞加关注哟&#xff01;更多精彩还在后面。 一、…

新国立祭出视频生成“无限宝石“:2300帧仅需5分钟,提速100倍

天下武功唯快不破—— 火云邪神 前一段时间&#xff0c;想必大家都有被各种文生视频给刷屏&#xff0c;但当看完之后&#xff0c;不知道大家是否都有一种意犹未尽的感觉&#xff1a;“这也太短了吧&#xff0c;我还没看够呢”。受限于机器资源与生成效率&#xff0c;目前大部分…

WebRTC批量发送消息API接口的特性有哪些?

WebRTC批量发送消息api接口怎么样&#xff1f;接口性能怎么用&#xff1f; WebRTC技术允许浏览器和移动应用进行实时通信。通过WebRTC&#xff0c;开发者可以构建视频、语音、数据共享等应用。AokSend将重点探讨WebRTC批量发送消息API接口的特性。 WebRTC批量发送消息API接口…

关于前端数据库可视化库的选择,vue3+antd+g2plot录课计划

之前&#xff1a;antdv 现在&#xff1a;g2plot https://g2plot.antv.antgroup.com/manual/introduction 录课内容&#xff1a;快速入门 图表示例&#xff1a; 选择使用比较广泛的示例类型&#xff0c;录课顺序如下&#xff1a; 1、折线图2、面积图3、柱形图4、条形图5、饼…

W外链短网址平台怎么样?抖音/小红书/快手/微信卡片生成

在当今数字化时代&#xff0c;网址的便捷性和易记性对于用户体验和网站推广至关重要。短网址技术应运而生&#xff0c;以其简洁、易记、方便分享的特性&#xff0c;逐渐成为网站优化和推广的重要手段之一。其中&#xff0c;W外链作为一个功能全面的短网址服务平台&#xff0c;以…

一文彻底搞懂性能测试

性能测试概念 我们经常看到的性能测试概念&#xff0c;有人或称之为性能策略&#xff0c;或称之为性能方法&#xff0c;或称之为性能场景分类&#xff0c;大概可以看到性能测试、负载测试、压力测试、强度测试等一堆专有名词的解释。 针对这些概念&#xff0c;我不知道你看到的…

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信 父子间通信 —— 父传子 父组件 export default function father() {return (<div style{{width:400px,height:200px,background:pink,marginLeft:500px}}>我是父组件<hr /><Son name{"韩小刀"}/></div>) } 子组件 ex…

刷代码随想录有感(131):动态规划——回文子串

题干&#xff1a; 代码&#xff1a; class Solution { public:int countSubstrings(string s) {vector<vector<bool>>dp(s.size(), vector<bool>(s.size(), false));int res 0;for(int i s.size() - 1; i > 0; i--){for(int j i; j < s.size(); j)…

[leetcode] shortest-subarray-with-sum-at-least-k 和至少为 K 的最短子数组

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int shortestSubarray(vector<int>& nums, int k) {int n nums.size();vector<long> preSumArr(n 1);for (int i 0; i < n; i) {preSumArr[i 1] preSumArr[i] nums[i];}int res n…

获取商铺信息,以及商铺信息的增删改查

本文章主要讲述如何对商铺信息进行基本的增删改查操作&#xff0c;及数据库对比。 1、获取首页仪表盘统计数据接口 待收费金额&#xff1a; SELECT count(1) as count,IFNULL(sum(total),0)as sum FROM payment_bill WHERE enabled_mark 1 AND pay_state0 欠费数据&#xf…

2970. 统计移除递增子数组的数目 I

解题思路 本题中的子数组&#xff0c;称为递增子数组。 子数组指的是一个数组中一段连续的数组序列。 假设nums的长度为n&#xff0c;则nums的子数组的个数为 n ( n 1 ) 2 \frac{n\times(n1)}{2} 2n(n1)​。 因此只需要找出不满足的递增子数组即可。 python class Solutio…

C++基础编程100题-021 OpenJudge-1.4-01 判断数正负

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/01/ 描述 给定一个整数N&#xff0c;判断其正负。 输入 一个整数N(-109 < N < 109) 输出 如果N > 0, 输出positive; 如果N 0, 输出zero; 如果N < 0, 输出negative 样例输入 1样例输出…

MySQL 程序简介

以下是常用的 MySQL 程序 程序名作用 mysqldMySQL 的守护进程&#xff0c;即 MySQL 服务器&#xff0c;若要使用 mysql 服务&#xff0c;那么 mysqld 必须处在运行状态 mysqlMySQL 客户端程序&#xff0c;用户交互式输入 SQL 语句或以批处理模式从文件执行 SQL 的命令行…

【Neo4j】实战 (数据库技术丛书)学习笔记

Neo4j实战 (数据库技术丛书) 第1章演示了应用Neo4j作为图形数据库对改进性能和扩展性的可能性, 也讨论了对图形建模的数据如何正好适应于Neo4j数据模型,现在到了该动 手实践的时间了。第一章 概述 Neo4j将数据作为顶点和边存储(或者用Neo4j术语,节点和关系存 储)。用户被定…

原生android的内存性能提升方面的测试和优化方案大致设计

一 测试目标&#xff1a; 以满足用户设备的内存性能和不杀后台为目标。 1&#xff1a;满足用户设备的内存性能是指不出现因为内存原因导致的安卓设备死机&#xff0c;卡顿等问题。 2&#xff1a;满足不杀后台是指整个设备使用时&#xff0c;不出现后台app被杀。 通常是估算如果…

Pytorch版本、安装和检验

基于conda包的环境创建、激活、管理与删除 CUDA版本 CUDA 是 NVIDIA 专为图形处理单元 (GPU) 上的通用计算开发的并行计算平台和编程模型&#xff0c;CUDA版本需满足对应的Pytorch要求 进入NVIDIA控制面板 进入左下角“系统信息”&#xff0c;找到组件 “NVIDIA CUDA 12.3.10…

7. 有奖猜谜

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明很喜欢猜谜语。 最近&#xff0c;他被邀请参加了 X 星球的猜谜活动。 每位选手开始的时候都被发给 777777 个电子币。 规则是&#xff1a;猜对了&#xff0c;手…

PostgreSQL关闭数据库服务的三种模式

PostgreSQL 提供了三种关闭数据库服务的不同方式&#xff0c;它们最终都是发送一个关闭信号到 postgres 主服务进程。 智能关闭模式 智能关闭&#xff08;Smart Shutdown&#xff09;模式向 postgres 主服务进程发送一个 SIGTERM 信号。此时服务器不允许新的客户端连接&#…

DNS 杂谈

一、定义 DNS&#xff08;Domain Name System&#xff09;&#xff0c;域名系统&#xff0c;该系统记录域名和Ip地址的相互映射关系。用户访问互联网时&#xff0c;通过域名地址得到对应的IP地址&#xff0c;这个过程称为域名解析。DNS运行于UDP协议之上&#xff0c;使用的端口…