四、Julia之控制逻辑

一、复合表达式

复合表达式指的是多条语句组成的独立语句块。

它类似于java中的普通代码块。

格式:

begin
    # 任意多的语句
end

或者

子表达式;子表达式;子表达式....

或者(圆括号代表免除语法歧义)

(子表达式;子表达式;子表达式....)

二、判断逻辑

在Julia中,判断逻辑由关键字 if 、elseif、 else 和 end 组成。

基本语法:

if 条件表达式1
    #	实现体
elseif 条件表达式2
    #	实现体
elseif 条件表达式3
    #	实现体
else
    #	实现体
end

要求:

结构中的if是必须的,且只能出现一次;else可以不出现但若出现也只能一次;而elseif可多次使用,但需在if之后、else之前。

注意点:

  • 在为if或elseif提供条件表达式时,是不支持将1或0这种整型值直接作为true或false使用的。

  • 三元运算符,Julia也是支持的。同时,ifelse()函数和三元运算符的作用一致。

    a>b ? 1:2 等同于 ifelse(a>b, a, 2)

三、循环逻辑

在Julia中,提供了和java一样的两个关键字 break 和 continue ,以便对循环进行控制。

1、while

语法:

while 条件表达式
    # 语句块
end

2、for

语法:

for 遍历表达式
    # 语句块
end

Julia提供了三种基本的遍历表达式:

第一种:

for 循环变量 = 可迭代数据集
    # 更多语句
end

第二种:

for 循环变量 in 可迭代数据集
    #更多语句
end

第三种:

for 循环变量 ∈ 可迭代数据集
    #更多语句
end

三种方式是相同的、等价的,可以任选其一。

其中的可迭代数据集,主要是指元组(Tuple)、字典(Dict)及集合(Set),或者数组(Array)及范围表达式(Range)等。

在for循环中,支持同时对多个数据集进行遍历,而且遍历操作符也可以混用。

在多遍历的表达中,得到的循环变量组合实际是每个数据集的笛卡尔积。

image-20201013163549590

四、异常处理

1、异常触发

Julia中内置定义了很多错误类型,均继承自抽象类型Exception。

通过throw()函数显式地抛出。

Julia除了预定义的错误类型,也可以进行自定义异常类型。它有一个通用的异常类型ErrorException。

自定义异常类型只需要声明为Exception新的子类型。

image-20201013175423806

其中的Stacktrace可以定位到函数名称和出现问题的位置。

Julia提供了几个定义日志级别的宏,类似于java中的注解。@error、@info、@warn、@debug

关于日志方面,Julia有一个Logging包,功能很全面。

image-20201013180017699

2、异常捕捉

在异常发生时,throw()抛出错误后,需要对其捕捉才能在恰当的位置有针对性地进行处置。

在Julia提供的捕捉机制中,将可疑语句放在try和end组成的异常处理结构中。

try
    # 正常语句块
catch 异常类型变量
	# 异常处理语句块
finally
    # 收尾清理语句块
end

在Julia的异常处理语法中,如果出现无法正确处理的错误,则可以通过rethrow()函数、backtrace()函数或catch_backtrace()函数对发现的异常再次传播。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值