Go 语言大白话入门 6 - 判断与循环
📅 2026/7/17 3:49:45
👁️ 次浏览
判断与循环本章目标这章把两件核心能力练起来判断和重复执行。 你学完要能自己写出if、for、switch并且看到报错能自己改。常见坑位先把最常见的坑看一眼后面不容易卡住。if条件外面加了圆括号写法不符合 Go 习惯。for三段式里把条件写反导致一次都不执行。break和continue混用结果和预期完全不一样。range返回的索引和值搞反。以为switch也要手动写break。正文步骤1.if让程序会做选择package main import fmt func main() { age : 20 // 年龄 if age 18 { fmt.Println(你已经成年) } else { fmt.Println(你还未成年) } }结论很简单条件成立走if不成立走else。再补一条常用写法if里可以先定义一个临时变量。package main import fmt func main() { if score : 75; score 60 { fmt.Println(及格) } else { fmt.Println(不及格) } }score只在这个if-else代码块内有效。2.for让程序按规则重复package main import fmt func main() { for i : 1; i 5; i { fmt.Println(第, i, 次输出) } }for i : 1; i 5; i可拆成三段i : 1初始化只执行一次。i 5循环条件每轮开始前检查。i步进每轮结束后执行。还有两种常见写法package main import fmt func main() { // 类似 while只有条件 count : 0 for count 3 { fmt.Println(count:, count) count } // 死循环通常配合 break for { fmt.Println(执行一次就退出) break } }Go 没有while一个for覆盖全部循环场景。3.for range遍历一组数据package main import fmt func main() { names : []string{小李, 小王, 小张} for index, name : range names { fmt.Println(index, name) } }range每轮给你两个值index索引从 0 开始name当前元素如果不要索引用_丢掉for _, name : range names { fmt.Println(name) }4.break和continue中途控制循环package main import fmt func main() { // break满足条件后直接退出整个循环 users : []string{小王, 小李, 小张, 小赵} for _, user : range users { if user 小张 { fmt.Println(找到了:, user) break } } // continue跳过本轮继续下一轮 numbers : []int{1, 2, 3, 4, 5, 6} for _, number : range numbers { if number%2 0 { continue // 偶数跳过 } fmt.Println(奇数:, number) } }一句话记忆break是“整轮结束”。continue是“本轮跳过”。5.switch分支多时更清楚package main import fmt func main() { score : 85 switch { case score 90: fmt.Println(优秀) case score 60: fmt.Println(及格) default: fmt.Println(不及格) } }按具体值匹配也很常见package main import fmt func main() { day : 2 switch day { case 1: fmt.Println(周一) case 2: fmt.Println(周二) default: fmt.Println(未知) } }注意Go 的switch默认每个case自动结束不需要手动写break。6. 两个补充取余和多重赋值先看取余%判断奇偶时非常高频。package main import fmt func main() { fmt.Println(10 % 3) // 1 fmt.Println(4 % 2) // 0 }再看多重赋值一行交换两个变量。package main import fmt func main() { left, right : 1, 2 left, right right, left fmt.Println(left, right) // 2 1 }示例代码最小可运行整合版下面这段把本章核心点串在一起复制可直接运行。package main import fmt func main() { score : 78 // 1) 判断 if score 60 { fmt.Println(成绩及格) } else { fmt.Println(成绩不及格) } // 2) 三段式循环 for i : 1; i 3; i { fmt.Println(第, i, 轮) } // 3) range continue numbers : []int{1, 2, 3, 4, 5, 6} oddCount : 0 for _, number : range numbers { if number%2 0 { continue } oddCount fmt.Println(奇数:, number) } // 4) switch switch { case oddCount 4: fmt.Println(奇数很多) case oddCount 2: fmt.Println(奇数适中) default: fmt.Println(奇数较少) } }过关标准自检清单对照下面 6 条能独立完成就算过关。能写出if / else并通过改条件验证输出变化。能解释for三段式的初始化、条件、步进。能用for range遍历切片并区分索引和值。能正确使用break和continue。能用switch写多分支并理解default。
1. 飞凌OK113i-C开发板硬件解析全志T113-i处理器作为这款开发板的核心,采用了双核Cortex-A7架构,主频可达1.2GHz,搭配128KB L2缓存。实测在视频处理场景下,双核协同工作能稳定维持1.0GHz以上的持续运算能力。特别值得注意的是其内…
📅 2026/7/17 3:49:45
这次我们来深入探讨一个嵌入式Linux开发中的实用技术方案——Petalinux应用自启动与双介质启动配置。对于使用Xilinx Zynq/Zynq MPSoC平台的开发者来说,如何高效管理启动流程和应用程序生命周期是项目成功的关键因素。这个方案的核心价值在于:它解决了嵌…
📅 2026/7/17 3:49:45
我无法根据当前输入内容生成符合要求的博文。原因如下:项目标题“具身 头部公司在集体‘练小号’......”语义模糊、缺乏明确技术指向或行业定义,“具身”与“练小号”在常规语境中属于跨域混用词:前者多见于人工智能/机器人领域(…
📅 2026/7/17 3:49:45
1. 项目概述:SAMRAI是什么,以及为什么你需要关注它如果你正在高性能计算(HPC)或大规模科学模拟领域摸爬滚打,尤其是涉及到流体力学、天体物理、燃烧模拟或者材料科学这些需要处理复杂物理场和巨大计算量的方向…
📅 2026/7/17 4:40:03
1. 项目背景与核心目标去年接手一个教育类SaaS平台的智能客服模块改造项目时,客户明确提出了两个硬性指标:智能回复准确率需达85%以上,单次响应时间必须控制在3秒内。当时市面上常见的SaaS客服系统平均响应时间在5-8秒,这促使我们…
📅 2026/7/17 4:40:03
1. 项目概述:当支付安全成为业务基石几年前,我参与过一个电商支付系统的重构项目,上线前卡在了安全审计环节。审计方指着我们数据库里那些“看起来像”加密的字段,问了一个直击灵魂的问题:“你们这个AES密钥是怎么管理…
📅 2026/7/17 4:40:03
这篇文章从工程视角梳理 ICP 配准的核心思想、PCL 中的常用接口、完整代码示例以及参数调优要点。读完后你应该能独立跑通一个最基础的点云精配准流程,并知道它什么时候好用、什么时候容易失效。
1. 为什么点云配准这么重要
做点云处理时,我们经常会遇到这样几个问题: 多帧…
📅 2026/7/17 4:40:03
1. 项目概述:为什么C多线程高并发是硬核程序员的必修课 最近在帮团队面试几个C方向的候选人,发现一个挺有意思的现象:不少人简历上写着“精通C多线程编程”,但一问到线程同步、死锁排查、无锁数据结构这些实战细节,就开…
📅 2026/7/17 4:40:03
最近在AI圈里有个很有意思的现象:不少开发者开始用Grok来"指挥"国产大模型干活。这听起来像是科幻片里的场景,但实际上背后反映的是一个很现实的问题——如何让不同的大模型协同工作,发挥各自优势。如果你正在做AI应用开发…
📅 2026/7/17 4:39:03
1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…
📅 2026/7/17 0:00:32
1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
📅 2026/7/17 0:00:32
在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。
对工程应用和在自己的图片上进行测试来…
📅 2026/7/17 0:00:32
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/17 2:37:27
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/16 21:45:29
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/17 2:40:57