首页 > 其他分享 >Scala学习(二)条件控制与循环

Scala学习(二)条件控制与循环

时间:2023-06-18 17:35:41浏览次数:28  
标签:语句 10 Scala 40 else 学习 循环 var

1、if语句:var a=20;

  var n= if(a>10) 40 else 1;

  得到n=40

 2、类型推断:

if(a>40) 40 else "dsaf" 返回的是父类型Any

if (a>10) 40

如果后面没有跟else语句,则默认返回Unit类型。相当于java中的void或null;

上面的语句相当于 if(a>10) 40 else ()

3、while循环

var n=10

while(n>1){

println(n)

n-=1

}

4、scala没有for循环,只能用while循环,或者简易版的for循环

var n=10; for(i<- 1 to n ) println(i)

或者使用until  : for(i<- 1 until n) println(i)

也可以对字符串进行循环: for (i <-"heelo world") println(i)

5、跳出循环语句

scala没有类似java的break语句,只能通过条件判断或者return或者Breaks的break函数来替代,

 

:paste

import scala.util.control.Breaks._

breakable{

  var n=10;

  for(i<- 1 to n){

    println(n);

    if(n==5) break;

    n-=1;

  }

}

6、多重for循环

for(i <- 1 to 10 ;j<- 1 to 10){

  if(j ==9){

    println(i*j)

  }else{

    print(i*j+" ")

  }

}

7、if守卫;取偶数

for(i<- 1 to 100 if i % 2==9) print(i)

8、推导式:构造集合

for(i<- i to 10) yield i

 

标签:语句,10,Scala,40,else,学习,循环,var
From: https://www.cnblogs.com/dongzhensd/p/17451505.html

相关文章

  • linux学习笔记(30)swap交换分区
    【1】查看swap(1.1)swap在线配置/扩容流程lsblk//查看物理盘和分区情况free-h//查看当前内存df-hT//查看当前磁盘挂载分布于磁盘格式#swap配置mkswap/dev/sdb2//格式化磁盘分区为swapblkid/dev/sdb2//查看分区......
  • nrf52832学习-app_timer模块
    简单使用:app_timer是模块,使用时需要在sdk_config.h文件中将其使能添加头文件app_timer.h定义Timer定时器唯一识别号_my_timer_id和需要的定时时间常量MY_TIMER_INTERVALAPP_TIMER_DEF(_my_timer_id);#defineMY_TIMER_INTERVALAPP_TIMER_TICKS(_milliseconds)......
  • 前端学习C语言 - 第二篇(常量、运算符、控制和循环)
    常量、运算符、控制和循环前文我们写了第一个c语言程序,了解了基本的数据类型。本篇将继续学习:常量、运算符、控制语句和循环语句。常量#define常量#define是用来定义常量和宏的预处理指令。定义常量的一般形式:#define常量名常量值。就像这样:#defineMAX_NUM100//定义整型......
  • 为什么jdk1.7的HashMap会产生死循环?
    前言JDK1.7中的HashMap在多线程情况下扩容可能会导致死循环。本文就这个问题进行讲解。扩容死循环这里回顾一下HashMap1.7扩容的过程,在扩容过程中,单链表的表现,相关的代码如下:Jdk1.7:voidresize(intnewCapacity){Entry[]oldTable=table;intoldCapacity=......
  • java web模板学习+1
    今天找到一个模板很厉害,代码开源的,拔下来就能跑。下面是他的博客地址和他的源代码地址。博客地址:开源一套简单通用的后台管理系统-huanzi-qch-博客园(cnblogs.com)开源地址:https://gitee.com/huanzi-qch/base-admin......
  • nrf52832学习-app_scheduler模块
    软件调度模块,但不是用来做任务调度的,而是为了在main函数中执行中断任务。说白了就是一个队列,中断中将数据和执行的函数放入队列中,然后main函数里一直去调用查询去执行,从而不阻塞中断app_sched_execute用来在main函数中执行,一直调用app_sched_event_put函数是在中断中调用将任务添......
  • Python学习日志一,初识Python
    一、向python说你好世界(print("Helloworld!!"))二、pycharm插件推荐使用上图这个插件就可以翻译代码里面的英文单词了三、Pycharm常用快捷键ctrl+alt+s:打开软件设置shift+alt+上/下:将当前行代码上移或者下移Ctrl+shift+f10:运行当前代码f6:重命名文件四......
  • opencv学习(一)
    在计算机眼中,图像就是由一个个像素点组成,而像素点中,又有三个值(R,G,B),也就是红、绿、蓝三个颜色,即三原色。故,opencv默认的读取图片的格式是RGB。一般格式:importcv2importmatplotlib.pyplotaspltimportnumpyasnpimg=cv2.imread('C:/Users/hellou/Desktop/zh......
  • 【Java学习】 Spring的基础理解 IOC、AOP以及事务
    一、简介  官网: https://spring.io/projects/spring-framework#overview   官方下载工具: https://repo.spring.io/release/org/springframework/spring/  github下载: https://github.com/spring-projects/spring-framework   maven依赖:<dependency>......
  • 关于sar的学习
    关于sar的学习背景公司一套基于某冷门Python架构的系统前几天出现异常卡顿.当时安装的时候必须使用ubuntu系统.所以当时默认安装的ubuntu1804,本来想尝试使用一下sar查看卡顿时期的系统状况但是发现没有默认安装.并且最近虽然有node-exporter以及prometheus和grafana但......