短路与和短路或|学习笔记

简介: 快速学习短路与和短路或

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:程短路与和短路或】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9548


短路与和短路或


内容介绍:

一、注意事项和细节说明

二、案例演示


一、注意事项和细节说明

1.&&也叫短路与如果第一个条件为 false,则第二个条件不会判断,最终结果为false

逻辑语言就是两个条件都为真。当第一个条件为假时,第二个条件就不需要判断最终结果就为否定。

2.||也叫短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为true

当第一个条件为真时,第二个条件是真或者为假。已经对第一个条件没有任何影响。因此第二条件不要判断最终结果都为正确


二、案例演示

演示短路与短路或的运行特点:

//声明一个函数(测试)

func test() bool {  

//test 是函数的名字,bool 是返回值

fmt.Println( “test....”)  

//输出一句话

return true  

//返回true

}

func main() {

var i int = 10

if i > 9 && test() {  

//test 最终返回 bool 值,所以可如上书写使用

fmt.Print1n(“ok...”) 

//输出

}

分析:i > 9为真时,则判断 test 是否为真,因为是与的关系,则调用 test 的函数,先输出”test....”,再输出“ok...”,那么整个代码先输出 test 再输出ok。

进一步执行,查看效果:

D: \goproject\ src\go_cade \chapter04\demo04>go run main.go

得到:

test….

ok…

可以看到没有问题,说明的确是完成了后面的判断。

相反而言:

if i <9 && test() {

fmt.Println( “ok...”)

因为10不小于9,那么i <9为假,test则不需要判断,并进行执行,则”test....”不会输出,“ok...”也不会输出。因为i <9为假,不会再去调用test函数。此时体现短路与的特点。

结果:

D : \goproject tsrc \go _code\chapter04\demo04>go run main – go

得到:

无任何输出

说明test未作出任何判断,这就是短路与的现象。

//短路与

//说明因为i<9为false 因此后面的test()就不执行

// if i < 9 && test() {

//fmt.Println( “ok. ..”)

}

if i <9 || test() {

fmt.Println( “hello...”) 

//为示区别ok改为hello

}

分析:

i<9为假,判断 test(),此时调用 test 函数,会输出 test,test 为真,则整个结果为真,因此会输出:

fmt.Println( “test.…”)

fmt.Println( “hello …”)

运行结果:

D : \goproject tsrc \go _code\chapter04\demo04>go run main.goD : \goproject tsrc \go _code\chapter04\demo04>go run main.go

得到:

test….

hello…

可以看到分析正确。

//说明因为i>9为true因此后面的test()就不执行

if i > 9 ||test() {

fmt.Print1n( “hello...”)

}

分析:

i > 9为真,因为10>9test则不会调用,因为整个结果为真,会直接输出hello。

运行结果:

D: \gropro ject\ src\ go_code chapter04\demo04>go run main .go

得到:

hello

可以看到输出的是 hello,这就是短路或一种语法现象。

关于逻辑运算的细节就讲解到这里。

相关文章
蓝牙HID协议笔记【转】
蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述     The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规程。
4699 0
|
Shell Android开发
Android10.0(Q) 默认应用设置(电话、短信、浏览器、主屏幕应用)
Android10.0(Q) 默认应用设置(电话、短信、浏览器、主屏幕应用)
1398 0
|
存储 缓存 算法
ES写入过程和写入原理调优及如何保证数据的写一致性(上)
ES写入过程和写入原理调优及如何保证数据的写一致性
ES写入过程和写入原理调优及如何保证数据的写一致性(上)
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
3549 0
|
11月前
|
存储 监控 安全
网络设备日志记录
网络设备日志记录是追踪设备事件(如错误、警告、信息活动)的过程,帮助IT管理员进行故障排除和违规后分析。日志详细记录用户活动,涵盖登录、帐户创建及数据访问等。为优化日志记录,需启用日志功能、管理记录内容、区分常规与异常活动,并使用专用工具进行事件关联和分析。集中式日志记录解决方案可收集并统一管理来自多种设备和应用的日志,提供简化搜索、安全存储、主动监控和更好的事件可见性,增强网络安全。常用工具如EventLog Analyzer能灵活收集、存储和分析日志,确保高效管理。
691 5
|
前端开发 API 数据处理
什么是BFF API?
BFF(Backend For Frontend)API 是一种架构模式,旨在为特定的前端应用(如移动应用、桌面应用或网页应用)提供定制化的后端服务。通过这种方式,后端可以根据前端的具体需求和特性,提供最优化的数据和逻辑处理,从而提升用户体验和应用性能。
697 6
|
人工智能 C语言
一则有意思的AI错误
本文记录了豆包AI在回答关于C语言内存分配问题时的错误过程。首次询问时,AI给出了错误的回答;经过两次追问和纠正后,AI才给出正确的答案。文中附有提问过程的完整截图和相关代码,分析了问题的原因,并探讨了AI在处理这类问题时的局限性。
|
监控 Cloud Native 测试技术
云原生架构下的性能优化与实践####
【10月更文挑战第21天】 本文深入探讨了在云原生环境下,如何通过一系列技术手段和最佳实践来提升应用性能。文章首先概述了云原生架构的基本原则与优势,随后详细分析了影响性能的关键因素,包括容器编排、微服务设计、持续集成/持续部署(CI/CD)流程以及监控与日志管理。针对这些因素,文中不仅介绍了具体的优化策略,如资源请求与限制的合理配置、服务间通信的高效实现、自动化测试与部署的优化,还结合案例分析,展示了如何在实际项目中有效实施这些策略以显著提升系统响应速度和处理能力。此外,文章还强调了性能测试的重要性,并提供了几种常用的性能测试工具和方法。最后,总结了云原生性能优化的未来趋势,为开发者和架构师
272 2
|
JavaScript 前端开发 搜索推荐
推荐5款免费、开箱即用的Vue后台管理系统模板
推荐5款免费、开箱即用的Vue后台管理系统模板
871 1
|
数据采集 存储 Web App开发
Python-数据爬取(爬虫)
【7月更文挑战第15天】
879 3