julia-表达式控制语句(第8讲)
发布日期:2021-06-29 14:44:38 浏览次数:2 分类:技术文章

本文共 3236 字,大约阅读时间需要 10 分钟。

表达式控制语句   2020/5/31================================================================================ 1.1.语法规范:    # 控制语句或函数定义必以 end 结尾 1.2.分类:    复合表达式 :   begin 和 (;)    条件求值 :     if-elseif-else 和 ?:     短路求值 :     &&, ||     重复求值 :     while 和 for    异常处理 :     try-catch , error 和 throw    任务协程 :     yieldto        # 任务提供了非本地的控制流,便于在临时暂停的计算中进行切换。        # 在 Julia 中,异常处理和协同多任务都是使用的这个机制。================================================================================2.0.代数系数-数值文本系数     用途:编写多项式表达式更加简洁    规则:        数字变量:被解释为乘法 -2x=(-2)*x;    √2x=(√2) * x    优先级略低于一元运算符        指数结合:同单目运算符  2^3x=2^(3x);  2x^3=2*(x^3)    右结合        数值括号:                         3(x-1);          2(x-1)^2=2*[(x-1)^2]        括号变量:                          (x-1)x      # 代数因子和变量或括号表达式之间不能有空格                                           (x-1)(x+1)  #  ERROR:不要接着写两个变量括号表达式-被解析为函数调用                                            x(x+1)     #  ERROR:不要把变量放在括号表达式之前-被解析为函数调用    x = 3    2x^2 - 3x + 1     # 2x^3 =2*(x^3)    2^2x              # 2^2x=2^(2x)    3(x-1)            # 6    2(x-1)^2          # 8     语法冲突:        以 0x 开头的表达式,都被解析为十六进制文本        以数字文本开头,后面跟着 e 或 E ,都被解析为浮点数文本        以数字文字开头的表达式f始终是32位浮点文字;1.5F22等于1.5 * F22 ================================================================================2.1.复合表达式     定义:用单个表达式按顺序计算多个子表达式,然后返回最后一个子表达式的值作为其值    方法:begin 块和 (;) 链 实例1:begin    z = begin   #1.多行书写    x = 1     y = 2     x + y    end         # 返回最后表达式的值: 3     (x = 1;     #2.多行书写: ";"      y = 2;     x + y) 实例2:(;) 链    z = (x = 1; y = 2; x + y)        #3.单行书写: ";"     begin x = 1; y = 2; x + y end    #4.单行书写 ================================================================================ 2.2.条件表达式/语句: 2.2.1.if语句: if Bool-[elseif-else] end     if x < y  a=1      #if无局部变量,if块中定义的变量可在之后使用;    elseif x > y a=2   #注意定义的变量引用可能存在问题:若无x>y语句后续出现x>y时提示a未定义    else  a=3          #请确保所有可能的代码路径都为变量定义了一个值    end     if 1 println("true")  end#错误 值是Bool true or false 2.2.2.链式问号表达式:a ? b : c    --结合规则是从右到左; "?",":"和变量之间必须有空格    z=x < y ? "X1" : "X2"    z=x < y ? "X1" : x>y ? "X2" : "X3" 2.2.3.短路求值    说明:        # && , || 布尔运算符称为短路求值,仅计算最少表达式来确定整个链的布尔值。        # a && b 只有 a= true 才计算;a || b 只有 a = false 才计算;都右结合, && 比 || 优先级高            用途: 简洁if 语句替代。     function factorial(n::Int)               n >= 0 || error("msg")# if !(n>=0) error("msg") end               n == 0 && return 1    # if n==0 return 1 end               n * factorial(n-1)           end================================================================================ 2.3.循环2.3.1.for 循环--可以遍历任意容器     for i in [1,2,3]  println(i) end     for i = 1:10                         # 1:3 是一个 Range 对象,表示1, 2, 3序列与Matlab一致         println(i)         if i >= 5 break end             # -终止循环-#         if i % 3 != 0  continue end # 中断本次循环    end     for i = 1:2, j = 3:4                 # 多层 for 循环             println((i, j))             # 用 break 可以直接跳出所有循环           end               # (1,3)    # (1,4)    # (2,3)    # (2,4) 2.3.2.while 循环    # while 循环不同于 Matlab 或者 Python,这是因为 Julia 语言中变量的作用域不同    # 循环体中变量(局部)作用域限制在循环体内,不会影响到循环体外    i = 0;      while i < 5  println("i=",i); global i += 1; end ================================================================================

 

转载地址:https://chunyou.blog.csdn.net/article/details/106460744 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:机器视觉-相机镜头光源介绍及选型-1.光学概念
下一篇:julia-Char字符String字符串(第7讲)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月28日 11时48分47秒