If 判断:

 object TestScalaIf {
def main(args: Array[String]): Unit = { // val resutlt = judge1(-100)
// println(resutlt) val resutlt2 = judge2(100)
println(resutlt2)
}
/*
* scala中不存在三元运算符,使用if/else
*/
def judge1(x:Int) = {
val c = if(x > 0) 1 else "superman"
c
} /*
* scala在做分层判断时,必须要把每一种可能性都判断好
*/
/*
def judge2(x: Int) = {
if(x>0){
1
}else if(x<0){
-1
}else{ //这种情况下和Java没有任何的区别.
0
}
}
*/
def judge2(x: Int) = {
if(x>0){
1
}else if(x<0){
-1
}
0//这个0是无论x是什么样的值都会走的.最后的返回值都是此处的0
} }

While和For循环:

循环(while、for) 如果需要倒叙输出,后面加reverse

如果修改步长,可以使用守卫方法,即在生成式后面加一个boolean判断,符合条件的输出

修改步长更简单的方式如下,to后面使用括号,括号中第二个参数表示步长

支持类似于java的双重for循环,在scala中只需要一个for即可

使用for推导式,可以把结果保存起来

看代码:

 object TestScalaFor {
def main(args: Array[String]): Unit = {
/*while循环*/
// while(true){
// println(12)
// } /*for循环*/
//之前Java中的for循环的写法
/*普通的for循环
*for(int i=0;i<5;i++){
*
*}
*/ /*增强for循环
*for(List i: list){
*
* }
*/ for( i <- 1 to 10){//这个是闭区间
println(i)
}
/*
* 输出结果:
* 1
* 2
* ....
* 10
*/ /*
* println(1 to 10)
* println(1.to(10))
* 这两个打印出来的是 Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
* to是一个方法.按F3可以直接进入该方法.
*/ for(i <- 1 until 10){//开区间 前闭后开 通常用于遍历数组
println(i)
}
/*
* 输出结果:
* 1
* 2
* ...
* 9
*/ for(i <-(1 to 10).reverse){//倒序输出
println(i)
}
/*
* 输出结果
* 10
* 9
* ....
* 1
*/ for(i <- "superman"){//遍历字符串
println(i)
}
/*
* 输出结果:
* s
* u
* ....
* n
*/ /*高级for循环*/
for( i <- 1 to 10 ;if i % 2 == 0){//更改步长为2.";" 这个情况下可以加也可以不加
println(i)
}
/*
* 输出结果:
* 2
* 4
* ...
* 10
*/ for( i <- 1 to 10 reverse;if i % 2 == 0){//";" 这个情况下必须加上,否则编译不通过.
println(i)
}
/*
* 输出结果
* 10
* 8
* ...
* 2
*/ /*改变步长的第二种方式*/
for(i <- 1 to (10,3)){//改变步长方式二
println(i)
}
/*
* 输出结果:
* 1
* 4
* 7
* 10
*/ //通过yield将一个集合转换成为另外一个集合的方法叫for的推导式
val c = for(i <- 1 to 10) yield { i + 1}
println(c)
/*
* 输出结果:
* Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
*/ for(i <- 1 to 10 ; j <- 1 to 5){//双重for循环
println(i + "---->" +j)
}
}
}

Scala中的If判断&While&For循环的更多相关文章

  1. Programming In Scala笔记-第十一章、Scala中的类继承关系

    本章主要从整体层面了解Scala中的类层级关系. 一.Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类.在Scala中所有类的最终父类为A ...

  2. scala学习手记2 - scala中的循环

    先来看一段Java中的循环: for (int i = 1; i < 4; i++) { System.out.print(i + ","); } 毫无疑问,scala可以让 ...

  3. 3. Python中的分支判断、循环

    本文利用的是Python 3.x版本,建议学习3.x版本 Python中的分支判断.循环 1. 分支条件判断 1.1 比较操作 以下是数之间常见的比较操作,例如5>3就是数学意义上的比较,5是大 ...

  4. Python中的条件判断、循环以及循环的终止

    条件判断 条件语句是用来判断给定条件是否满足,并根据判断所得结果从而决定所要执行的操作,通常的逻辑思路如下图: 单次判断 形式 if <判断条件>: <执行> else: &l ...

  5. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  6. Programming In Scala笔记-第七章、Scala中的控制结构

    所谓的内建控制结构是指编程语言中可以使用的一些代码控制语法,如Scala中的if, while, for, try, match, 以及函数调用等.需要注意的是,Scala几乎所有的内建控制结构都会返 ...

  7. scala中option、None、some对象

    转载:http://www.jianshu.com/p/95896d06a94d 1.option类型避免对象是空值,造成空指针异常. 2.None对象表示null,在没有对象返回时使用,some在有 ...

  8. Scala中的流程控制

    一.分支控制if-else //Scala中if-else语句中,代码块内最后一句代码就是返回值 def main(args: Array[String]): Unit = { var age:Int ...

  9. Scala中apply的用法

    Scala中的 apply 方法有着不同的含义, 对于函数来说该方法意味着调用function本身, 以下说明摘自Programming in Scala, 3rd Edition Every fun ...

随机推荐

  1. svn IP地址变更后如何变更

    通过grep ip地址,发现svn中url地址信息是记录在.svn文件夹entries文件中的,第一种方案应该是遍历目录下的entries文件,将ip替换为新的ip即可. 可以发现这个用sed命令即可 ...

  2. HDU 5833 Zhu and 772002 (高斯消元)

    Zhu and 772002 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5833 Description Zhu and 772002 are b ...

  3. iOS学习之自动布局

    Autolayout: 最重要的两个概念: 约束:对控件位置和大小的限定条件 参照:对控件设置的约束是相对于哪一个视图而言的 自动布局的核心计算公式: obj1.property1 =(obj2.pr ...

  4. c语言函数的可选性自变量

    功能: 宏va_arg()用于给函数传递可变长度的参数列表. 首先,必须调用va_start() 传递有效的参数列表va_list和函数强制的第一个参数.第一个参数代表将要传递的参数的个数. 其次,调 ...

  5. mime type 概要介绍

    内容类型 内容类型(Content-Type),这个头部领域用于指定消息的类型.一般以下面的形式出现. Content-Type: [type]/[subtype]; parameter type t ...

  6. (转)HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  7. Flex “跑马灯”效果(自定义“跑马灯”控件)

    自定义类(BroadCastMarquee.as): package marquee { import flash.events.MouseEvent; import flash.events.Tim ...

  8. Actions 动作集

    --> 移动鼠标到指定位置(先触发onMouseOver动作)        Actions action = new Actions(driver);        WebElement th ...

  9. DuiLib(二)——控件创建

    上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_C ...

  10. 在VS2012下不安装VS2010编译VS2010的工程

    虽然一路追随这VISUAL SUTDIO在编程,但是断档的情况还是有的,最近一次硬盘问题使得安装了所有的VS2003-VS2012的机器硬盘挂了,无奈只能够安装了,不过觉得没啥用了,就安装一个VS20 ...