Scala-循环
package com.mengyao.scala.function
/**
* Scala中循环的声明和使用(while和for)
*
* @author mengyao
*/
object Test3 {
def main(args: Array[String]){
test1
test2
test3
test4
test5
test6
test7
test8
test9
}
//while循环0到10
def test1(): Unit = {
var count = 0;
while(true){
println(count)
count+=1
if(count>10)
return
}
}
//输出从1到3
def test2(): Unit = {
for(i<-1 to 3){ // 实际上是调用1.to(3)方法,scala把所有都视为对象(数字1是RichInt类的方法,这个类型是由Int隐式转换来的。to()方法返回的是一个Range类的实例)
print(i+",") // 不换行输出。注意i是一个val常量,不是var变量。每次循环都创建一个叫做i的val常量,不可以在循环中改变常量i的值。
}
}
//输出从1到2,until方法不包含最后一个值
def test3(): Unit = {
for(i<-1 until 3){ // 实际上是调用1.until(3)方法,scala把所有都视为对象(数字1是RichInt类的方法,这个类型是由Int隐式转换来的。until()方法返回的是一个Range类的实例)
print(i+",") // 不换行输出。注意i是一个val常量,不是var变量。每次循环都创建一个叫做i的val常量,不可以在循环中改变常量i的值。
}
}
//输出从1到3
def test4(): Unit = {
(1 to 3).foreach(i=>print(i+",")) // 使用Range类的foreach()方法,foreach()方法接收的的参数是一个函数值,所以需要在括号中提供一段代码体
}
//倒序输出从10到1
def test5(): Unit = {
for(i<-1 to 10 reverse){ // 使用Range类的reverse()方法,该方法会将一个数组倒序输出
println(i)
}
}
//倒序改变步长-守卫
def test6(): Unit = {
for(i <- 1 to 10 reverse ; if i%2==0) {
println(i)
}
}
//倒序改变步长
def test7(): Unit = {
for(i <- 1 to (10, 2)){
println(i)
}
}
//双重for循环
def test8(): Unit = {
for(i <- 1 to 10; j <- 1 to 10){
println(i+" : "+j)
}
//或者如下
// for(i <- 1 to 10){
// for(j <- 1 to 10){
// println(i+" : "+j)
// }
// }
}
//for的推导式
def test9(): Unit = {
val nums = for(i <- 1 to 10)yield {i+1}
//或者如下
// val nums = for(i <- 1 to 10)yield (i+1)
// val nums = for(i <- 1 to 10)yield i+1
println(nums)
}
}
Scala-循环的更多相关文章
- Spark记录-Scala循环语句
Scala while循环语句 当给定条件为真时,while循环重复一个语句或一组语句.它在执行循环体之前测试条件状态. 只要给定的条件为真,while循环语句重复执行目标语句. object Dem ...
- Scala:访问修饰符、运算符和循环
http://blog.csdn.net/pipisorry/article/details/52902234 Scala 访问修饰符 Scala 访问修饰符基本和Java的一样,分别有:privat ...
- 快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)
apply方法是Scala中十分常见的方法,你可以把这种用法当做是()操作符的重载形式. 像以上这样伴生对象的apply方法是Scala中构建对象的常用手法,不再需要使用new. if 条件表达式的值 ...
- Scala 条件控制与循环
Scala if表达式 ·if表达式的定义:在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值. ·例如,val age = 30; if (age > 18) 1 ...
- Scala入门教程---《chang哥教你一天搞定Scala》
<chang哥教你一天搞定Scala> /** * <chang哥教你一天搞定Scala> * scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性. * ...
- Scala 语法基础
一 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Java虚拟机上,并兼容现有的Java程序.Scal ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
- Scala 关键字
Java关键字 Java 一共有 50 个关键字(keywords),其中有 2 个是保留字,目前还不曾用到:goto 和 const.true.false 和 null 看起来很像关键字,但实际上只 ...
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
package yjmyzz import scala.io.StdIn object ScalaApp { def main(args: Array[String]) { println(" ...
- Scala 深入浅出实战经典 第75讲:模式匹配下的For循环
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
随机推荐
- honeywell D6110开发的一个工厂仓库追溯识别
近日.接触并开发了一个用honeywell D6110 二维扫描PDA的项目,应用也比較简单. 就是货品物料编码.通过中间码相应,然后中间码再依照不同OEM品牌须要生成各种商品条码并带有流水号. 要求 ...
- valgrind 的使用及错误信息分析
这里记录一下使用valgrind查找你的应用程序中的各种潜在的错误信息,并举例说明. 经常使用valgrind查找一下你的代码的内存有关错误,对移植到嵌入系统后的系统稳定性来说有着重要的意 ...
- SpringMVC06以对象的方式获取前台的数据
========创建需要的两个实体类================ public class School { private String sName; private String addres ...
- 网页JavaScript3
window.document 1,确认元素, document.getElementById("id"); 根据id找元素 doucment.getEleme ...
- 回传值(代理、通知、block)
回传值问题,一直都是困扰初学者的问题,今写者 代理.通知.block 三者的回传值做了一个小小的总结, Main.storyboard 视图: 通过代码分别创建三个代表 代理.通知.block 的按钮 ...
- InstallShield Limited Edition for Visual Studio 2013
InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET Framework进去)本文转自“吾乐吧软件站”,原文链接:h ...
- eclipse提交hadoop集群跑程序
在eclipse下搭建hadoop后,测试wordcount程序,右击 Run on hadoop 程序跑成功后,发现“INFO - Job job_local401325246_0001 compl ...
- Oracle数据库之创建表空间与用户
Oracle数据库之创建表空间与用户 一.创建表空间 基本语法表述: CREATE TABLESPACE tablespace_name [DATAFILE datafile_spec1 [,data ...
- javascript控制图片等比例缩放
<SCRIPT language="JavaScript"> function DrawImage(ImgD,FitWidth,FitHeight){ var imag ...
- wamp目录索引图片不显示
在wampserver安装目录下 \bin\apache\Apache2.2.21\conf\extra\httpd-autoindex.conf Alias /icons/ "c:/Ap ...