zoukankan      html  css  js  c++  java
  • 控制结构和函数

    概要:

    1.条件表达式

    2.输入语句很长,实现换行

    3.块表达式和赋值

    4.输入和输出 

    5.循环 

    6.高级for循环和for推导式

    7.函数 

    8.默认参数和带名参数 

    9.变长参数

     10.过程 

    11.懒值 

    12.异常

    1.条件表达式

    BigInt是if与else两个分支的超类:

    Any是if与else两个分支的超类:

     

    2.输入语句很长,实现换行

    如果想在else之前换行(遇到{则表示后面的肯定还没有结束,因此回车时不会去计算结果)

    再看看例子,充分理解{和}的含义,只要输入了{,同时还没有遇到},就说明,输入还没有结束,因此可以实现换行:

    3.块表达式和赋值:

    块中最后一个表达式的值就是块的值

    4.输入和输出

    readLine函数从控制台读取一行输入。注:类似方法readDouble、readByte、readShort、readLong、readFloat、readBoolean、readChar。

    5.循环

    while实现:

    for实现:1 to n表示要循环的变量

    遍历字符串的index下标:i的最后一个取值是s.length - 1

    在以上例子中,事实上我们并不需要使用下标。因此,可以直接遍历对应的字符序列:

    6.高级for循环和for推导式

    相当于java中的二重循环:

    带条件的for循环:注意,if前面并没有分号

    如果for循环的循环体以yield开始,则该循环会构造出一个集合,每次迭代成集合中的一个值。

    7.函数

    定义函数,需要给出函数的名称/参数和函数体,必须给出所有参数的类型,不过,只要函数不是递归的,就不需要指定返回的类型。

    如果函数体需要多个表达式完成,可以用代码块。块中的最后一个表达式的值就是函数的返回值。

    非递归函数定义:

     

    递归函数定义:

    8.默认参数和带名参数

    相对参数的数量,如果给出的值不够,默认参数会从后往前逐个应用进来。

    带名参数并不需要跟参数列表的顺序完全一致。

    9.变长参数

    定义一个可以接受可变长长度参数列表的函数:

    调用sum方法:注意,如果传入的参数是一个整数区间,那么,应该在这个整数区间后面加上:_*

    递归方法可变长参数:args.head表示可变参数的第一个参数,args.tail表示除了第一个参数的其他参数。

     10.过程

    如果函数体包含在花括号当中但没有前面的=号,那么返回类型就是Unit。这样的函数被称为过程。

    11.懒值 

    在words被定义时即被取值

    在words被首次使用时取值

    在每一次words被使用时取值

    12.异常

    throw表达式有特殊的类型Nothing。如果一个分支的类型是Nothing, 那么if/else表达式的类型即使另外一个分支的类型。即下面的if/else的类型是Double。

    捕获异常:

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 交换Easy
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法训练 矩阵乘方
    QT中给各控件增加背景图片(可缩放可旋转)的几种方法
    回调函数实现类似QT中信号机制
    std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
  • 原文地址:https://www.cnblogs.com/sunnyDream/p/8000017.html
Copyright © 2011-2022 走看看