for循环相关

循环语句是指令式编程的常见语句,Scala对其加以改进,成为适应函数式风格的利器。

for循环中的变量,没有val或者var,是因为变量的类型,完全是集合中的元素的类型。作用域持续到括号结束。

在scala中,没有continue和break。continue可以用if守卫来完成。

break有一下几种方式:

1.使用Boolean控制变量

2.使用函数return来模拟

3.使用Breaks对象。

for循环中可以定义任意多的生成器,用;隔开,每个生成器,都可以带一个守卫,if 加Boolean表达式,中间不用分号隔开。

For循环也可以有返回值的,返回的是一个List。在每一轮迭代中加入yield,yield后的值可以加入到List中。这种循环成为for推导式,一下是例子:

注意yield前面不能加{}。(否则报错)

 1 val file = List("warn 2013 msg", "warn 2012 msg",
 2   "error 2013 msg", "warn 2013 msg")
 3
 4 def wordcount(str: String): Int = str.split(" ").count("msg" == _)
 5
 6 val counts =
 7   for (line <- file)
 8     yield wordcount(line)
 9
10 val num = counts.reduceLeft(_ + _)
11
12 println("wordcount:" + num)

注意,for推导式生成的元素类型和第一个生成器的类型,是兼容的。

时间: 2024-11-10 01:30:52

for循环相关的相关文章

Scala学习笔记(二)(for循环相关)

Scala里if...else语句 if语句不管是在哪种语言里是使用最多的语句了. scala的if语句与java如出一辙. 举个栗子就不再赘述: 一个 if 语句的语法: if(Boolean_expression) { // Statements will execute if the Boolean expression is true } 如果布尔表达式的值为true,那么if语句里面的代码模块将被执行.如果不是这样,第一组码if语句结束后(右大括号后)将被执行. 示例: object

分支循环相关

分支: 1.判断今天是今年第几天 1 # __author__ = "wyb" 2 # date: 2018/3/18 3 # 判断今天是今年第几天 4 import time 5 6 7 def demo(year, month, day): 8 day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 9 if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)

Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密

1 # 1.键盘录入的字符串(假设字符串中只包含小写字母和空格)进行加密操作, 2 # 加密的规则是a变d,b变e,c变f,??,x变a,y变b,z变c,空格不变,返回加密后的字符串 3 # 97 98 99 100 x = 120(97) y = 121(98) z = 122(99) 4 5 c_in = input("输入一个字母串:") 6 mi_c = '' 7 for c in c_in: 8 if 97 <= ord(c) < 120: 9 mi_c += c

java基础-for循环、while循环相关

1.for循环是什么 2.for循环执行过程 3.for循环实现乘法口诀表 public class Example1 { public static void main(String[] args) { // 乘法口诀表 String a = ""; for(int i = 1 ; i <= 9 ; i ++){ for(int j =1; j <= 9 ; j++){ if(j == 1){ a+= "\n"; } if(i < j) cont

算法交作业之循环和递归(二)

说明: 循环是学习编程过程中的不可或缺的一部分.同时递归同循环有着千丝万缕的关系. 求和函数示例: //求0到n的和.求和失败返回-1.否则返回结果. #include <iostream> //最常见的循环写法. long long Sum(unsigned int&& n){ long long sum = 0; for (unsigned index = 1; index <n+1; ++index) sum += index; return sum; } //递归

容斥原理与莫比乌斯反演的关系

//容斥原理,c[i]表示i当前要算的次数,复杂度和第二层循环相关 O(nlogn~n^2) LL in_exclusion(int n,int *c) { for(int i=0;i<=n;i++) c[i]=1; //不一定是这样初始化,要算到的才初始化为1 LL ans=0; for(int i=0;i<=n;i++) if(i要算) { ans+=(统计数)*c[i]; for(int j=i+1;j<=n;j++) if(i会算到j) c[j]-=c[i];//j要算的次数减去

php程序的三大流程控制

php程序的三大流程控制 ①  顺序控制(从上到下,从左到右) ②分支控制 if(条件表达式){ //n多语句 }else if (条件表达式){ //n 多语句 }else if(条件表示式){ //. }//这里可能还有更多的else if else{ } u  switch分支语句 基本语法结构 switch(表达式){   case 常量1: //n多语句; break; case 常量2: //n多语句 break; default:    //n多语句;        break;

redis源码分析(2)——事件循环

redis作为服务器程序,网络IO处理是关键.redis不像memcached使用libevent,它实现了自己的IO事件框架,并且很简单.小巧.可以选择select.epoll.kqueue等实现. 作为 IO事件框架,需要抽象多种IO模型的共性,将整个过程主要抽象为: 1)初始化 2)添加.删除事件 3)等待事件发生 下面也按照这个步骤分析代码. (1)初始化 回忆一下redis的初始化过程中,initServer函数会调用aeCreateEventLoop创建event loop对象,对事

循环语句(for、while)(一)

2016-12-18 while循环结构; while语句是Python语言中最通用的迭代结构. while语句最完整的书写格式是:首行以及测试表达式,有一列或多列缩进语句的主体以及一个可选的else部分(控制 权离开循环而又没有碰到Break语句时会执行).Python会一直计算开头的测试,然后执行循环主体内的语句,直到测试返回值为假. 1 while <test>: #Loop test 2 <statements1> #Loop body 3 else: #Optional