1、分支控制if-else

分支控制有三种:单分支、双分支、多分支;

1.1 单分支

(1)、语法入下:

if(条件表达式){

      执行代码块       //当条件表达式为true时,才会执行代码块内容

}

1.2 双分支

语法入下:

if(条件表达式){

      执行代码块       //当条件表达式为true时,才会执行代码块内容

}else{

      执行代码块        //当条件表达式为false时,才会执行代码块内容

}

1.3 多分支

语法入下:

if( 条件表达式1 ){

      执行代码块1       //当条件表达式1 为true时,才会执行代码块1 内容

}else  if( 条件表达式2 ){

      执行代码块2        //当条件表达式2 为true时,才会执行代码块2 内容

}else  if( 条件表达式3 ){

      执行代码块3        //当条件表达式3 为true时,才会执行代码块3 内容

}else{

      执行代码块4        //当条件表达式为false时,才会执行代码块4 内容

}

1.4 分支语句的返回值

val result : Unit = if(条件表达式){

         执行代码块       //当条件表达式为true时,才会执行代码块内容

}else{

     执行代码块        //当条件表达式为false时,才会执行代码块内容

}    //结果返回() ;实际是返回代码块最后一行

实现java中的三元运算符:(关系表达式) ? 表达式1:表达式2;

scala实现:val res = if( age>18 ) "成年" else "未成年" ;

2、for循环

2.1 范围遍历

for (i <- 1 to 10){      // 底层就是对象的方法调用,相当于  for (i <- 1.to(10))   [1,10]

     println(i + "次遍历")     //从1到10 循环遍历

   }

--------------------------------------------------------------

  for (i <- 1 until 10){      //  [1,10)  ,也可以用   for (i <- rang(1,10) )

     println(i + "次遍历")     //从1到9 循环遍历

   }

  2.2 集合遍历

     for (i <- Array(1,10,12) ){     //for (i <- Set(1,10,12,33) )  for (i <- List(1,12,33) )

      println(i + "次遍历")     //输出的结果为:  1次遍历   10次遍历   12次遍历

    }

  2.3 循环守卫(循环过滤)

    Scala 可以在for循环中 使用一个或多个 if 语句来过滤一些元素

    for (a <- 1 to 10 if a != 2 ; if a < 4){

      println(a + "次循环")      //输出的结果为 : 1次循环 3次循环

    }

  2.4 循环步长

     注意:step 不能为0;可以为小数,但是不推荐用,可能会造成精度缺失;

2.5 倒序遍历

           

  2.6 嵌套循环

      

例如:实现九九乘法表

嵌套循环的格式也可以用一下的方式:

2.7 引入变量

九层妖塔Scala单层循环实现:

2.8 for循环返回值

默认是空,即();个人理解是 因为关系表达式的值一致在变,返回值不确定是哪一个;

val ints = for (a <- 1 to 5) yield a

//使用关键字 yield ,把变量相关的值放入集合中进行返回;用于对集合中的元素进行计算处理

3、while循环

while 和do......while的使用和java语言中完全相同

3.1 while的用法  

循环变量的初始化

    while(循环条件)
{
循环体statement(s);
循环变量迭代;
}

3.2 do......while的用法

do {

循环体statement(s);

       循环变量迭代;

} while(循环条件);

例如:

   

4、循环中断

scala内置控制结构特地去掉了break和continue,是为了更好的适应函数式编程。推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。scala中使用breakable控制结构来实现break和continue的功能。

代码简化方式如下:

scala流程控制的更多相关文章

  1. Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战

    002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...

  2. 4. Scala程序流程控制

    4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...

  3. Scala(一):函数、流程控制、参数

    Function:函数函数的定义: def 函数名(参数):返回类型=函数实现体 eg:def abs(x:Long) : Long = if(x >= 0) x else -x 你必须给出所有 ...

  4. [原创]Scala学习:流程控制,异常处理

    1.流程控制 1)do..while def doWhile(){ var line="" do{ line = readLine() println("readline ...

  5. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  6. Dream------scala--函数定义、流程控制、异常处理

    Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程

  7. 第10章 Shell编程(4)_流程控制

    5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...

  8. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  9. PHP基础知识之流程控制的替代语法

    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...

  10. Python黑帽编程2.4 流程控制

    Python黑帽编程2.4  流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容. 2.4.1 if …..else 先上一段代码: #!/usr/bin/python # - ...

随机推荐

  1. 无锡哲讯谈食品行业如何利用SAP信息化方案实现数字化转型?

    随着人们对生活品质的提高,大家对食品安全问题越来越重视.食品企业如果缺乏相应的监管和追溯,很容易陷入困难的被动局面.SAP系统可以对食品加工企业供应链.生产销售.食品质量控制等环节的信息化管控,降低食 ...

  2. Microsoft Project 使用教程

    Microsoft Project使用教程 一.新建项目 1. Project界面操作 "文件" -→ "新建" -→ "空白项目" 建议在 ...

  3. SpringBoot为什么这么火?

    1.  总的设计原则是""默认大于配置"" 2. Starter机制,开箱即用,默认的配置和依赖都是默认加载的 3. SpringBoot是Spring的子类, ...

  4. Delphi 多进程共享内存的简单封装单元

    该单元转自武稀松的博客 稍作修改,使其支持Delphi7 { 共享内存封装. 封装成了MemoryStream的形式. 用法如下: var ms : TShareMemStream; ms := TS ...

  5. 远程过程调用失败0x800706be

    今天用数据库突然发生了<远程过程调用失败0x800706be>,参考一下网站解决 https://www.cnblogs.com/guohenghai/p/3533091.html 今天在 ...

  6. Oracle数据库字符集与国家字符集

    一般情况下数据库字符集UTF-8:国家字符集:UTF-16.   服务器端:(oracle服务器端字符集)数据库字符集在创建数据库时指定,在创建后通常不能更改.在创建数据库时,可以指定字符集(CHAR ...

  7. python logger 按时间段滚动

    import logging import logging, logging.handlers import time logging.getLogger().setLevel(logging.DEB ...

  8. 离线谷歌地图API的开发笔记(二)

    一.地图引擎介绍 离线地图引擎运行在WINDOWS平台上,底层由Visual c++语言开发,编译为OCX插件方式.占用文件少,便于二次开发的快速安装部署. 具有专业地图的基础操作功能:地图放大.缩小 ...

  9. fiddler 调试

    如果本地代理js发现跨域,需要手动修改自定义规则 1 static function OnBeforeResponse(oSession: Session) { 2 if (m_Hide304s &a ...

  10. 【ZYNQ学习】如何使用ZYNQ

    本篇博客建立一套ZYNQ系统开发的一般方法和流程,并对ZYNQ的硬件和软件的设计流程进行概述 设计工具: vivado IDE:创建SoC设计中的硬件系统部分,同时和设计套件中的其他工具有交互,包含集 ...