news 2026/8/21 16:41:59

开口闭口都是高并发、高可用,可是连个for循环都写不利索,也是醉了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开口闭口都是高并发、高可用,可是连个for循环都写不利索,也是醉了

有很多程序员,喜欢把高并发、高可用这样的名词挂在嘴边,似乎是,如果不这样,就显得自己没水平,跟不上时代。然而,对于一些基础知识却并不熟练。俗话说,基础不牢,地动山摇。只有掌握了这些基础性东西,才有可能建造起一座真正的“高并发、高可用”的大厦。

对于for循环,Java程序员可能再熟悉不过了。在使用过程中,有一种很常见的场景,就是满足条件之后就退出循环。这样的功能实现起来倒不难,使用break关键字即可搞定,像下面这样:

package com.sample.interview.core.foundation; import java.util.Arrays; import java.util.List; publicclass ForExample { public static void main(String[] args) { List<String> list = Arrays.asList("Tom", "John", "Jack"); for (String str: list){ System.out.println(str); if(str.equals("John")){ break; } } System.out.println("程序运行结束!"); } }

上面的程序初始化一个列表,里面包含三个字符串,程序需要实现的功能:遍历这个数组,打印其中的字符串,直到John就退出循环。

实现方法很简单,使用for-each遍历,打印列表中的元素,如果元素的内容为John,则break,它让循环中止,最后一个元素Jack就不会打印出来了。

然而,如果是两重循环,直接使用break有时候可能达不到想要的效果。比如要实现这样的功能:遍历列表中的元素并且打印出来,直到满足以下条件就不再遍历:该字符串包含字符o。

我们假定使用二重循环来实现(当然可能也会有其他更好的办法):

package com.sample.interview.core.foundation; import java.util.Arrays; import java.util.List; publicclass ForExample { public static void main(String[] args) { List<String> list = Arrays.asList("Tom", "John", "Jack"); for (String str: list){ System.out.println(str); char[] chars = str.toCharArray(); for (char c: chars){ if(c=='o'){ break; } } } System.out.println("程序运行结束!"); } }

上面程序的实现方式也很简单,首先遍历字符串,然后把字符串转成字符数组,并且遍历这个字符数组,如果字符等于o,那么直接退出循环,我们看看运行结果:

Tom John Jack 程序运行结束!

第一个元素Tom这个字符串包含字符o,正常情况下,遍历到这个字符串以后就应该退出整个循环,不应该再把John和Jack打印出来,但上面这个程序却把所有元素都打印出来了。

这是因为break只是退出当前循环,然而,想要退出整个循环,还得使用其他的方法。

那么,要实现上述的功能,应该怎么做呢?请留言打出你的答案!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 18:02:24

MPC-HC播放器界面深度定制指南:从基础美化到高级主题

MPC-HC播放器界面深度定制指南&#xff1a;从基础美化到高级主题 【免费下载链接】mpc-hc Media Player Classic 项目地址: https://gitcode.com/gh_mirrors/mp/mpc-hc 你是否希望让经典的Media Player Classic播放器焕然一新&#xff1f;本文为你提供一套完整的MPC-HC界…

作者头像 李华
网站建设 2026/8/19 5:30:33

深入理解MyBatis缓存机制:一二级缓存全解析

引言在现代Web应用中&#xff0c;数据库访问往往是性能瓶颈之一。MyBatis作为流行的持久层框架&#xff0c;其缓存机制是提升应用性能的关键特性。理解MyBatis的一二级缓存不仅有助于优化应用性能&#xff0c;还能避免因缓存不当导致的数据一致性问题。本文将从基础概念到高级原…

作者头像 李华
网站建设 2026/8/21 6:05:46

最小二乘问题详解9:使用Ceres求解非线性最小二乘

如果要构建安装 Ceres Solver&#xff0c;可以参考文章《CMake构建学习笔记30-Ceres Solver库的构建》。Ceres Solver 的构建过程还是挺麻烦的&#xff0c;推荐直接找预编译版本&#xff0c;比如 GISBasic3rdParty。 还是求解与《最小二乘问题详解8&#xff1a;Levenberg-Marq…

作者头像 李华
网站建设 2026/8/20 21:20:23

多智能体系统性能优化实战指南

多智能体系统性能优化实战指南 【免费下载链接】awesome-ai-agents A list of AI autonomous agents 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-ai-agents 在当今AI技术快速发展的背景下&#xff0c;多智能体系统已成为处理复杂任务的重要架构。然而&a…

作者头像 李华
网站建设 2026/8/20 6:09:49

Langchain-Chatchat与ChatGLM结合使用的最佳配置方法

Langchain-Chatchat 与 ChatGLM&#xff1a;构建高可信本地知识库问答系统的实践路径 在企业知识管理日益智能化的今天&#xff0c;一个普遍存在的矛盾正变得愈发突出&#xff1a;通用大模型虽然“见多识广”&#xff0c;但在面对公司内部政策、技术文档或合规条款时&#xff0…

作者头像 李华
网站建设 2026/8/20 22:17:01

CodeGPT智能助手深度解析:重新定义开发工作流的AI利器

CodeGPT智能助手深度解析&#xff1a;重新定义开发工作流的AI利器 【免费下载链接】CodeGPT A CLI written in Go language that writes git commit messages or do a code review brief for you using ChatGPT AI (gpt-4, gpt-3.5-turbo model) and automatically installs a …

作者头像 李华