当前位置: 首页 > news >正文

scala内建控制结构

一、条件表达式

(一)语法格式

 - if (条件)1 else2

(二)执行情况

  • 条件为真,结果是值1;条件为假,结果是值2。如果if和else的返回结果同为某种类型,那么条件表达式结果也是那种类型,否则就是Any类型
  • Scala的条件表达式有点类似于Java的条件运算符

(三)案例演示

任务1、根据输入值的不同进行判断

在这里插入图片描述
在这里插入图片描述

任务2、编写Scala程序,判断奇偶性

  • 打开Scala项目ScalaDemo,创建net.huawei.day02包,在包里创建Example01对象
package net.gxf.day02import scala.io.StdIn/*** 功能:判断奇偶性*/object Example01 {def main(args: Array[String]): Unit = {print("n = ")val n = StdIn.readLine.toIntval result =  if (n % 2 == 0)n.toString + "是偶数~"elsen.toString + "是奇数~"println(result)}
}

在这里插入图片描述
在这里插入图片描述

二、块表达式

案例演示

在这里插入图片描述
在这里插入图片描述

三、for循环

(一)单重for循环

  • 案例演示
    在这里插入图片描述

任务1:输出1到10

  • 两种方式实现,一种使用Range类,一种使用to运算符
    在这里插入图片描述

任务2、遍历字符串,输出每个字符

  • 方法一、按索引取字符串的每个字符(传统for循环)
    在这里插入图片描述
  • 方法二:将字符串看作一个由多个字符组成的集合(增强for循环)
    在这里插入图片描述

任务3、计算 1 + 2 + 3 + … + 100

  • 注意sum必须定义为var型变量
    在这里插入图片描述
  • 利用集合的归并方法来求和最简单
    在这里插入图片描述

任务4、输出列表内的偶数(过滤)

在这里插入图片描述

任务5、输出全部两位素数

for (n <- 10 to 100; if !(n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n % 7 == 0))  print(n.toString + " ")

在这里插入图片描述

(二)嵌套for循环

案例演示

任务1、打印九九表

在这里插入图片描述

package net.gxf.day02/*** 功能:双重循环打印九九表* 作者:gxg* 日期:2023年02月22日*/
object Example02 {def main(args: Array[String]): Unit = {for (i <- 1 to 9) {for (j <- 1 to i) {print(i.toString + "×" + j + "=" + (i * j) + "\t")}println()}}
}

方法一、采用双重循环来实现

在这里插入图片描述

方法二、采用单重循环来实现

在这里插入图片描述

package net.gxf.day02/*** 功能:单重循环打印九九表* 作者:gxf* 日期:2023年02月22日*/
object Example03 {def main(args: Array[String]): Unit = {for (i <- 1 to 9; j <- 1 to i) {print(i.toString + "×" + j + "=" + (i * j) + "\t")if (j == i) println()}}
}

在这里插入图片描述

方法三、采用单重循环与流间变量绑定来实现

在这里插入图片描述

package net.gxf.day02/*** 功能:单重循环与流间变量绑定打印九九表* 作者:gxf* 日期:2023年02月22日*/
object Example04 {def main(args: Array[String]): Unit = {for (i <- 1 to 9; j <- 1 to i; sep = if (j == i) "\n" else "\t") {print(i.toString + "×" + j + "=" + (i * j) + sep)}}
}

在这里插入图片描述

方法四、采用单重循环、流间变量与yield来实现

在这里插入图片描述

package net.gxf.day02/*** 功能:采用单重循环、流间变量与yield打印九九表* 作者:gxf* 日期:2023年02月22日*/
object Example05 {def main(args: Array[String]): Unit = {val list = for (i <- 1 to 9; j <- 1 to i; sep = if (j == i) "\n" else "\t")yield i.toString + "×" + j + "=" + (i * j) + seplist.foreach(print)}
}

在这里插入图片描述

四、条件循环

(一)while循环

任务1、计算1+ 2 + 3 + … + 100

在这里插入图片描述

package net.gxf.day02/*** 功能:等差数列求和* 作者:gxf* 日期:2023年02月23日*/
object Example10 {def main(args: Array[String]): Unit = {var sum = 0var i = 1while (i <= 100) {sum = sum + ii = i + 1}println("1 + 2 + 3 + ... + 100 = " + sum)}
}

在这里插入图片描述

  • 采用函数式风格来写代码,递归函数来实现求和,注意:此处sum是常量

在这里插入图片描述

package net.gxf.day02/*** 功能:等差数列求和* 作者:gxf* 日期:2023年02月23日*/
object Example10_ {def mx(n: Int, sum: Int): Int = {if (n > 0) mx(n - 1, sum + n) else sum}def main(args: Array[String]): Unit = {println("1 + 2 + 3 + ... + 100 = " + mx(100, 0))}
}

在这里插入图片描述

任务2、打印全部水仙花数

在这里插入图片描述

package net.gxf.day02import scala.io.StdIn/*** 功能:判断奇偶性*/object Example01 {def main(args: Array[String]): Unit = {print("n = ")val n = StdIn.readLine.toIntval result =  if (n % 2 == 0)n.toString + "是偶数~"elsen.toString + "是奇数~"println(result)}
}

在这里插入图片描述

(二)do while循环

任务:计算1+ 2 + 3 + … + 100

在这里插入图片描述

package net.gxf.day02/*** 功能:等差数列求和* 作者:gxf* 日期:2023年02月23日*/
object Example12 {def main(args: Array[String]): Unit = {var sum = 0var i = 1do {sum = sum + ii = i + 1} while (i <= 100)println("1 + 2 + 3 + ... + 100 = " + sum)}
}

在这里插入图片描述

五、异常处理

任务:演示try-catch-finally

  • try-catch-finally是有返回值的:如果没有异常就是try语句的返回值,如果有异常就是catch语句的返回值。注意不会是finally的返回值,finally即使有返回值,也会被抛弃,这点和Java是不同的。

在这里插入图片描述
在这里插入图片描述

六、match结构

案例演示

在这里插入图片描述

package net.gxf.day02import scala.io.StdIn/*** 功能:判断奇偶性*/object Example01 {def main(args: Array[String]): Unit = {print("n = ")val n = StdIn.readLine.toIntval result =  if (n % 2 == 0)n.toString + "是偶数~"elsen.toString + "是奇数~"println(result)}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、变量作用域

(一)Java变量作用域

  • 1、内部能访问外部

在这里插入图片描述
在这里插入图片描述

  • 2、外部不能看内部
    在这里插入图片描述

(二)Scala变量作用域

  • 1、内部不能访问外部
  • 在这里插入图片描述
package net.gxf.day02/*** 功能:变量作用域 - 内部能访问外部* 作者:gxf* 日期:2023年03月01日*/
object Example15 {def main(args: Array[String]): Unit = {val message = "欢迎访问醉美泸州~"if (true) {println(message)}}
}

在这里插入图片描述

  • 2、外部不能访问内部

在这里插入图片描述

相关文章:

scala内建控制结构

一、条件表达式 &#xff08;一&#xff09;语法格式 - if (条件) 值1 else 值2&#xff08;二&#xff09;执行情况 条件为真&#xff0c;结果是值1&#xff1b;条件为假&#xff0c;结果是值2。如果if和else的返回结果同为某种类型&#xff0c;那么条件表达式结果也是那种类…...

Linux SSH命令实战教程,提升你的服务器管理基本功!

前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文是专栏【linux基本功-基础命令实战】的第62篇文章。 专栏地址&#xff1a;[linux基本功-基础命令专栏] &#xff0c; 此专栏是沐风晓月对Linux常用命令的汇总&#xff0c;希望能够加深自己的印象&am…...

【Python】Python进阶系列教程-- Python3 CGI编程(二)

文章目录 前言什么是CGI网页浏览CGI架构图Web服务器支持及配置第一个CGI程序HTTP头部CGI环境变量GET和POST方法使用GET方法传输数据简单的表单实例&#xff1a;GET方法使用POST方法传递数据通过CGI程序传递checkbox数据通过CGI程序传递Radio数据通过CGI程序传递 Textarea 数据通…...

do..while、while、for循环反汇编剖析

1、循环语句重要特征提取 循环语句最重要的特点就是执行的过程中会往上跳&#xff01;&#xff01;&#xff01; 箭头往上跳的一般都是循环语句&#xff0c;比如下面的for循环&#xff1a; 2、do..while语句反汇编 #include<iostream> using namespace std; #pragma …...

【代码随想录】刷题Day53

1.最长公共子序列 1143. 最长公共子序列 和之前的一道题目的区别就是这个子序列不需要每个字符相邻。那么条件就变成两种了&#xff0c;一种是当前的字符相同&#xff0c;一种是不同。相同跟之前的条件一样&#xff1b;不同则需要继承上次比较的较大值。if (text1[i - 1] tex…...

MySQL 索引及查询优化总结

一个简单的对比测试 前面的案例中&#xff0c;c2c_zwdb.t_file_count表只有一个自增id&#xff0c;FFileName字段未加索引的sql执行情况如下&#xff1a; 在上图中&#xff0c;typeall&#xff0c;keynull&#xff0c;rows33777。该sql未使用索引&#xff0c;是一个效率非常低…...

什么是AJAX?

AJAX是一种基于Web的技术&#xff0c;它允许Web应用程序在不刷新整个页面的情况下与服务器进行交互。通过AJAX&#xff0c;Web应用程序可以使用JavaScript向服务器发送异步请求并在不干扰用户的情况下更新页面的部分内容。 AJAX是Asynchronous JavaScript and XML的缩写。尽管…...

报表生成器FastReport .Net用户指南:显示数据列、HTML标签

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。 FastReport.NET官方版…...

bootstrap-dialog弹框,去掉遮盖层,可移动

1.去掉遮盖层的设置data-backdrop"false" <div class"modal fade" id"modal" aria-modal"true" role"dialog" data-backdrop"false" style"width:50%"><div class"modal-dialog modal-l…...

7. user-Agent破解反爬机制

文章目录 1. 为什么要设置反爬机制2. 服务器如何区分浏览器访问和爬虫访问3. 反爬虫机制4. User-Agent是什么5. 如何查询网页的User-Agent6. user-agent信息解析7. 爬虫程序user-agent和浏览器user-agent的区别8. 代码查看爬虫程序的user-agent9. 在代码中加入请求头信息 1. 为…...

3.Nginx+Tomcat负载均衡和动静分离群集

文章目录 NginxTomcat负载均衡和动静分离群集Nginx作用实验七层反向代理nginx动静分离四层反向代理负载均衡 NginxTomcat负载均衡和动静分离群集 Nginx是-款非常优秀的HTTP服务器软件 支持高达50 000个并发连接数的响应拥有强大的静态资源处理能力运行稳定内存、CPU等系统资源…...

数据结构与算法之树结构

目录 为什么要使用树结构树结构基本概念树的种类树的存储与表示常见的一些树的应用场景为什么要使用树结构 线性结构中不论是数组还是链表,他们都存在着诟病;比如查找某个数必须从头开始查,消耗较多的时间。使用树结构,在插入和查找的性能上相对都会比线性结构要好 树结构…...

【python】 用来将对象持久化的 pickle 模块

pickle 模块可以对一个 Python 对象的二进制进行序列化和反序列化。说白了&#xff0c;就是它能够实现任意对象与二进制直接的相互转化&#xff0c;也可以实现对象与文本之间的相互转化。 比如&#xff0c;我程序里有一个 python 对象&#xff0c;我想把它存到磁盘里&#xff…...

【博客654】prometheus配置抓取保护以防止压力过载

prometheus抓取保护配置以防止压力过载 场景 担心您的应用程序指标可能突然激增&#xff0c;以及指标突然激增导致prometheus压力过载 就像生活中的许多事情一样&#xff0c;标签要有节制。当带有用户 ID 或电子邮件地址的标签被添加到指标时&#xff0c;虽然它不太可能结束…...

Backtrader官方中文文档:第十三章Observers观察者

本文档参考backtrader官方文档,是官方文档的完整中文翻译,可作为backtrader中文教程、backtrader中文参考手册、backtrader中文开发手册、backtrader入门资料使用。 本章包含 backtrader 官方Observers章节全部内容,入口 : https://backtrader.com/docu/observers-and-sta…...

算法leetcode|54. 螺旋矩阵(rust重拳出击)

文章目录 54. 螺旋矩阵&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a;每次循环移动一步&#xff1a;每次循环完成一个顺时针&#xff1a…...

单容水箱建模(自衡单容水箱+无自衡单容水箱)

自衡单容水箱Simulink建模和PLC源代码请参看下面文章链接: 单容双容水箱建模(simulink仿真+PLC代码)_RXXW_Dor的博客-CSDN博客PLC通过伯努利方程近似计算水箱流量详细内容请参看下面的文章博客PLC通过伯努利方程近似计算水箱流量(FC)_怎么用伯努利方程求某水位流量_RXXW_Dor的…...

分享Python7个爬虫小案例(附源码)

本次的7个python爬虫小案例涉及到了re正则、xpath、beautiful soup、selenium等知识点&#xff0c;非常适合刚入门python爬虫的小伙伴参考学习。注&#xff1a;若涉及到版权或隐私问题&#xff0c;请及时联系我删除即可。 1.使用正则表达式和文件操作爬取并保存“某吧”某帖子…...

我用ChatGPT写2023高考语文作文(一):全国甲卷

2023年 全国甲卷 适用地区&#xff1a;广西、贵州、四川、西藏 人们因技术发展得以更好地掌控时间&#xff0c;但也有人因此成了时间的仆人。 这句话引发了你怎样的联想与思考&#xff1f;请写一篇文章。 要求&#xff1a;选准角度&#xff0c;确定立意&#xff0c;明确文体&am…...

c++ modbusTCP

//Modbus TCP是一种基于TCP/IP协议的Modbus协议&#xff0c;它允许Modbus协议通过以太网进行通信。 //在C中&#xff0c;可以使用第三方库来实现Modbus TCP通信&#xff0c;例如libmodbus和QModbus。 //使用libmodbus库实现Modbus TCP通信的示例代码如下&#xff1a; //c #incl…...

linux(信号结尾)

目录&#xff1a; 1.可重入函数 2.volatile关键字 3.SIGCHLD信号 -------------------------------------------------------------------------------------------------------------------------------- 1.可重入函数----------用来描述一个函数的特点的 1.在单进程当中也存…...

【漏洞修复】node-exporter被检测出来pprof调试信息泄露漏洞

node-exporter被检测出来pprof调试信息泄露漏洞 说在前面解决方法结语 说在前面 惯例开篇吐槽&#xff0c;有些二五仔习惯搞点自研的安全扫描工具&#xff0c;然后加点DIY元素&#xff0c;他也不管扫的准不准&#xff0c;就要给你报个高中危的漏洞&#xff0c;然后就要去修复&…...

在linux 上安装 NFS服务器软件

在 Ubuntu Linux 中创建 NFS 文件系统通常需要完成以下步骤: 安装 NFS 服务器软件。您可以在终端上使用以下命令来安装所需的软件包。sudo apt-get update sudo apt-get install nfs-kernel-server创建要共享的目录。例如,您可以创建一个名为 /var/nfs/shared 的目录。sudo m…...

网卡中的Ring buffer -- 解决 rx_resource_errors 丢包

1、软硬件环境 硬件&#xff1a; 飞腾E2000Q 平台 软件&#xff1a; linux 4.19.246 2、问题现象 网卡在高速收包的过程中&#xff0c;出现 rx error , 细查是 rx_resource_errors 如下&#xff1a; rootE2000-Ubuntu:~# ifconfig eth1 eth1: flags4163<UP,BROADCAST,RU…...

六月九号补题日记:Codeforces Round 877 (Div. 2)

专注是不够的&#xff0c;很重要的一方面在于细节&#xff0c;关注细节&#xff1a;精细和专注才是成功的重点&#xff01;&#xff01;&#xff01; A 题意&#xff1a;给你一堆数字&#xff0c;说这一堆数字是由最初的两个数字相减得到的&#xff0c;让你求出两个数字其中一…...

python基础选择题,高中适用

1. 下面哪个是 Python 的注释符号&#xff1f; A. // B. # C. /* D. ; 答案&#xff1a;B 2. 下面哪个是 Python 的赋值运算符&#xff1f; A. B. C. ! D. > 答案&#xff1a;A 3. 下面哪个是 Python 的逻辑运算符&#xff1f; A. && B. || C. ! D. & 答…...

Linux 面试题-(腾讯,百度,美团,滴滴)

Linux 面试题-(腾讯,百度,美团,滴滴) 分析日志t.log(访问量)&#xff0c;将各个ip 地址截取&#xff0c;并统计出现次数,并按从大到小排序(腾讯) http://192.168.200.10/index1.html http://192.168.200.10/index2.html http://192.168.200.20/index1.html http://192.168.20…...

DDD--战略设计步骤

在领域驱动设计&#xff08;Domain-Driven Design&#xff0c;DDD&#xff09;中&#xff0c;战略设计是指在系统的整体层面上考虑领域模型的组织和架构。下面是一些战略设计的详细步骤&#xff1a; 确定限界上下文&#xff08;Bounded Context&#xff09;&#xff1a;首先&a…...

Web Scoket简述

Web Socket 简介 初次接触 Web Socket 的人&#xff0c;我们已经有了 HTTP 协议&#xff0c;为什么还需要另一个协议&#xff1f;它能带来什么好处&#xff1f; 因为 HTTP 协议有一个缺陷&#xff1a;通信只能由客户端发起。http基于请求响应实现。 &#xff08;准确来说HTTP…...

“Docker 技术在企业中的应用及挑战解决方案“

Docker 技术是一种基于容器化的应用部署和管理技术。随着云计算的普及和应用的不断增多&#xff0c;Docker 技术在企业中的应用越来越广泛。本文将介绍 Docker 技术的基本概念、优势和应用场景&#xff0c;并讨论如何在企业中应用 Docker 技术。 一、Docker 技术概述 Docker …...

wordpress模板页面说明/百度平台电话多少

我写一个系列&#xff0c;专门记一记长见识的代码 深挖了求边缘的程序&#xff0c;发现matlab还有这种函数&#xff1f;或者说用法&#xff1f; 解析&#xff1a; >> A[1 2 8;4 7 6;2 6 7;5 6 1]; max(A)ans 5 7 8>> A[1 2 8;4 7 6;2 6 7;5 6 1]; ma…...

遵义市网站制作/平台推广费用

TinyXML是一个开源的解析XML的解析库&#xff0c;能够用于C&#xff0c;能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件&#xff0c;然后在内存中生成DOM模型&#xff0c;从而让我们很方便的遍历这棵XML树。简单易用且小巧 玲珑&#xff0c;非常适合存储简单数据…...

建设部房地产网站/市场推广方案和思路

一、map函数 1、作用&#xff1a;它接收一个函数 f 和一个 list&#xff0c;并通过把函数 f 依次作用在 list 的每个元素上&#xff0c;得到一个新的 list 并返回。 2、实例 def f(x):return x*x a list( map (f, [1, 2, 3, 4, 5, 6, 7, 8, 9])) print (a)#[1, 4, 9, 16, 25, …...

青岛网站设计哪家好/seoul是什么意思中文

state 1.类中方法this的指向 constructor和render里的this指向类组件的实例对象在类组件内部定义的普通函数&#xff0c;作为onClick的回调&#xff0c;不是通过实例调用的&#xff0c;是直接调用&#xff0c;并且类组件内部默认开启了局部严格模式&#xff0c;所以this指向u…...

移动网站建设哪家好/免费数据分析网站

//程序存在bug&#xff0c;会不断占用内存直到死机//是malloc函数的问题/**************************************************** 文件名&#xff1a;pthread_server.c* 文件描述&#xff1a;创建子线程来接收客户端的数据***************************************************…...

辽宁省精神文明建设工作三大创建活动网站/360推广

当满足以下三个条件时&#xff0c;两者会输出相同信息。 1. 服务器为80端口 2. apache的conf中ServerName设置正确 3. HTTP/1.1协议规范 不同点&#xff1a; 通常情况&#xff1a; _SERVER[“HTTP_HOST”] 在HTTP/1.1协议规范下&#xff0c;会根据客户端的HTTP请求输出信息…...