scala if  else 判断

(1)在scala中末尾不需要添加 分号 作为语句的终结符。  val  name = "Leo"

(2)  在 scala 中 if else 是有返回值的,返回值是最后一条语句。if(num > 10)"Li" else 2

(3) 因为 if 和 else 是有值的 所以可以直接将 if 和 else 的结果复制给某个变量  val  name = if(num > 10)"Li" else 2    因为返回值类型不一样  所以推断其公共父类型是 any

(4) 在 scala中 无论是方法还是函数 以及条件判断等 只要是有返回值的 都不需要加 return 关键字  val name = if (num > 20) "zs" else "lisi"

(5)如果 没有else 的语句块,则对else 结果推断为 unit 即 没有else 返回值  会返回  ()  类似于  java 的 void

if else 练习 :

import scala.io.StdIn
// import scala.util.control.Breaks._
object BaseDemo {
def main(args: Array[String]): Unit = {
val userName = StdIn.readLine("please write your username" + "\n")
val passWord = StdIn.readLine("please write your password" + "\n")
if(userName.equals("admin") && passWord.equals("root")){
println("welcome somebody")
}else{
println("get out")
}
}
}

scala  for 循环

(1)使用 to 会产生一个连续不断的区间范围  状态:左右都是闭区间

object BaseDemo {
def main(args: Array[String]): Unit = {
val a = 1 to 10
println( a) for ( i <- 1 to 10){
print(i)
}
}
}
// Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
//

(2)使用until 会产生一个连续不间断的区间  状态:左闭右开

object BaseDemo {
def main(args: Array[String]): Unit = {
for(i <- 0 until 10){
print(i)
}
}
}
//

(3)for循环遍历字符串

object BaseDemo {
def main(args: Array[String]): Unit = {
for(i<- "pwefjpwfpwkf[w"){
// println(i)
print(i + ",")
}
}
}
// p,w,e,f,j,p,w,f,p,w,k,f,[,w,

(4)多重for循环遍历  九九乘法表

 def main(args: Array[String]): Unit = {
for(x <- 1 to 9 ; y <- 1 to 9){
if (y == 9){
println(x + "*" + y + "=" + x * y )
}else
print(x + "*" + y + "=" + x * y + " \t ")
}
}
}
/*
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
...
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/

(5)带 if 守卫的 for 循环

object BaseDemo {
def main(args: Array[String]): Unit = {
for(i <- 1 to 10 ){
if (i % 2 == 0) print (i + ",") else ()
}
}
}
// 2,4,6,8,10,

(6)推导式 for 循环  yield 会拿到每一个元素,然后对其进行 i * 3 的操作

object BaseDemo {
def main(args: Array[String]): Unit = {
val arr = for( i <- 1 to 5 ) yield i * 3
for(j <- arr){
print(j + ",")
}
}
}
// 3,6,9,12,15,

(7)for 循环遍历数组 Array

object BaseDemo {
def main(args: Array[String]): Unit = {
val arr = Array(1,"hello","a")
for(a <- arr){
print(a + ",")
}
}
}
// 1,hello,a,

(8) 中断 for循环

import scala.util.control.Breaks._

object BaseDemo {
def main(args: Array[String]): Unit = {
breakable({
for (i <- 0 to 10) {
print (i + ",")
if (i >= 5) {
break()
}
}
})
}
}
// 0,1,2,3,4,5,

(9)if 守卫 中断 for循环

object BaseDemo {
def main(args: Array[String]): Unit = {
for(i <- 0 to 10){
if(i <= 5){
print(i + ",")
}
}
}
}
// 0,1,2,3,4,5,

scala (1) for 循环的更多相关文章

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

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

  2. scala中停止循环的三种方式

    1:使用return关键字 object BreakLoop { //1.使用return关键字 def add():Unit= { for(i <- 1 to 10){ if(i==7){ / ...

  3. Scala 中 for 循环 和 generator 的使用例子

    这个例子是,从每个list中,找到age最大的那个node. class Node(vName: String, vAge: Int) { // Entity class var name: Stri ...

  4. Scala学习之for 循环和 yield 的例子

    for循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合.Scala中for循环是有返回值的.如果被循环的是Map,返回的就是Map,被循环的是List,返回的就是Lis ...

  5. Spark记录-Scala循环语句

    Scala while循环语句 当给定条件为真时,while循环重复一个语句或一组语句.它在执行循环体之前测试条件状态. 只要给定的条件为真,while循环语句重复执行目标语句. object Dem ...

  6. 【scala】循环

    1.while循环 Scala的while循环跟其他语言并没有很大差别. var i = 0; while(i<args.length){ println(i); i+=1; } Scala也有 ...

  7. Scala 条件控制与循环

    Scala if表达式 ·if表达式的定义:在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值. ·例如,val age = 30; if (age > 18) 1 ...

  8. 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数

    4.    Scala基础 4.1.   声明变量 package cn.itcast.scala object VariableDemo {   def main(args: Array[Strin ...

  9. 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合

    前言 Scala是以JVM为运行环境的面向对象的函数式编程语言,它可以直接访问Java类库并且与Java框架进行交互操作.正如之前所介绍,Spark是用Scala语言编写的,Kafka server端 ...

随机推荐

  1. 【Git】创建一个空分支

    1 创建一个分支 使用参数 --orphan,这个参数的主要作用有两个,一个是拷贝当前所在分支的所有文件,另一个是没有父结点,可以理解为没有历史记录,是一个完全独立背景干净的分支. 参考git的帮助文 ...

  2. C# 委托/Func() 中 GetInvocationList() 方法的使用 | 接收委托多个返回值

    在日常使用委托时,有以下常用方法 方法名称 说明  Clone   创建委托的浅表副本.  GetInvocationList   按照调用顺序返回此多路广播委托的调用列表.  GetMethodIm ...

  3. sqlserver-一次updlock和withnolock和with check option 的报错原因分析

    接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错, 报错信息如下 原因: 程序代码写入以下代码 select * from ViewName with(updlock) whe ...

  4. iOS亮屏解锁命令【iOS自动化测试】--使用ssh

    前提:iOS越狱手机一个 越狱方法:使用pp助手, 爱思助手等 1.从Cydia安装以下软件: AppSync for iOSx(可安装破解软件).afc2add补丁(可访问整个iOS设备的系统文件) ...

  5. ZooKeeper教程(一)----Centos7下安装ZooKeeper(单机版)

    1.下载源码 官网下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/ 选择最新的版本进行下载 这里选择3.4.10进行下载: wget http:// ...

  6. 【[HNOI2004]敲砖块】

    非常巧妙的\(dp\)顺序 这道题如果按照最正常的顺序来\(dp\)的话,显然是没有办法做的,后效性太大了 所以我们可以巧妙的改变\(dp\)的顺序 我们注意到一个位置\((i,j)\)要被打到的话就 ...

  7. Java50道经典习题-程序21 求阶乘

    题目:求1+2!+3!+...+20!的和分析:使用递归求解 0的阶乘和1的阶乘都为1 public class Prog21{ public static void main(String[] ar ...

  8. 机器学习基石笔记:Homework #2 decision stump相关习题

    原文地址:http://www.jianshu.com/p/4bc01760ac20 问题描述 程序实现 17-18 # coding: utf-8 import numpy as np import ...

  9. WiFi密码忘记了怎么办之解决方案

    随着科技不断进步,网络产品也越来越便宜了.家家户户基本上都有能力装上宽带. 但是有的时候,时间久了,我们可能会忘记密码(密码设置比较复杂的情况下).那么如何找到密码呢? 通常的办法有很多,百度或者Go ...

  10. spring boot容器加载完后执行特定操作

    有时候我们需要在spring boot容器启动并加载完后,开一些线程或者一些程序来干某些事情.这时候我们需要配置ContextRefreshedEvent事件来实现我们要做的事情 1.Applicat ...