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

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

开发者学堂课程【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,这就是短路或一种语法现象。

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

相关文章
|
6月前
什么是短路表达式?
什么是短路表达式?
102 1
|
6月前
|
JavaScript
短路表达式
短路表达式 短路表达式
55 0
|
6月前
|
Java
逻辑运算符和短路求值
逻辑运算符和短路求值
44 0
|
6月前
|
C++
C++程序中的逻辑运算
C++程序中的逻辑运算
61 1
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
6月前
|
C语言
逻辑操作符中的短路
C语言逻辑运算符按左到右顺序执行,先评估左侧表达式。如果左侧满足条件,右侧表达式不会求值,此现象称为短路。例如,`month &gt;= 3 && month &lt;= 5`,若month小于3,右侧不执行。同样,对于`month == 12 || month == 1 || month == 2`,若month为12,不需要检查其余条件。练习题中未提供具体代码,但给出了结果:a=2, b=3, c=3, d=5。
41 0
|
存储
短路时间常数法
短路时间常数法是一种用于分析电路的动态响应的方法,特别适用于分析电路的短路响应。它基于电路的短路时间常数,用于描述电路响应的快慢程度。
310 0
|
6月前
1-3 逻辑运算
1-3 逻辑运算
30 0
关于短路操作
在逻辑与&& 或者 逻辑或 || 的运算中,表达式1满足要求,表达式2不再运算的操作即为短路操作
47 0