1 100 以内的数求和,求出当和第一次大于 20 的当前数。
思路:在循环相加时加入if判断,不符合条件就直接跳出循环,带出相对应的数字。
object Work02 {
def main(args: Array[String]): Unit = {
var num=0
var sum=0
Breaks.breakable(
for(i:Int <- 0 to 100){
if(sum>20){
num=i-1
Breaks.break()
}
sum+=i
}
)
println(num)
}
}
编写一个包含 100 个随机数字(Int 型)的 List,通过 map 将此 List 中所有成员乘以 2,接下来用filter 把所有的偶数找出来。提示:scala.util.Random 可生成随机数。
思路:先创随机数的num,在创建List集合并用fill直接添加随机数,最后通过map处理。
object Work02 extends App {
var num=Random
var I=List.fill(100)(num.nextInt(101)).map(_*2).filter(_%2==0)
println(I)
}
用scala输出0-6的所有加法算式
思路:定义两个数直接遍历6次,没便利一次加一次和减一次
object Work02 {
def main(args: Array[String]): Unit = {
var num1=0
var num2=6
while (num1<=6 && num2>0){
print(num1+"+"+num2+"=")
println(num1+num2)
num1+=1
num2-=1
}
}
}
请将下列同学分为2组,依次每3人一组,组内按名排序
案例:“Jason,Vince,Dwan,Lynn,Stephon”
思路:先用split切分然后用toList转换成集合,最后通过迭代器grouped分成每三个一组
object Work02 {
def main(args: Array[String]): Unit = {
var str:String="Jason,Vince,Dwan,Lynn,Stephon"
var list=str.split(",").toList
val iterator = list grouped 3
println(iterator.next())
println(iterator.next())
}
}
需求说明
现在Book拥有电子版本,可以在多终端上播放
定义Ebook特质,包含play()方法
使Book混入Ebook特质,实现play()方法
trait Ebook{
def play(): Unit ={
println("打开电子书")
}
}
class Book(t:String,a:String) {
var title:String=t
var author:String=a
}
object Book{
def apply(t: String, a: String): Book = new Book(t, a)
def main(args: Array[String]): Unit = {
var book:Book with Ebook=new Book("嫌疑人的x献身","东野圭吾") with Ebook
book.play()
}
}
需求说明
假设类Book有属性title和author(多个),books是Book的列表
实现Book类,同时使用主构造器与辅助构造器
实现Book的伴生对象,使用伴生对象创建Book实例
创建books,使用List[Book]初始化5个以上Book实例
找出books中书名包含“xxx”的书,并打印书名
找出books中作者名以“xxx”打头的书,并打印书名
class Book{
var title:String=_
var author:String=_
def this(title:String,author:String){
this()
this.title=title
this.author=author
}
}
object Book{
def apply(title: String, author: String): Book = new Book(title, author)
def main(args: Array[String]): Unit = {
var book1:Book=Book("嫌疑人的x献身","东野圭吾")
var book2:Book=Book("x方程组","数学老师出的")
var book3:Book=Book("悬疑小说白夜行","东野圭吾")
var book4:Book=Book("悬疑小说假面山庄","东野圭吾")
var book5:Book=Book("三国演绎","罗贯中")
var books:List[Book]=List(book1,book2,book3,book4,book5)
books.filter(x => x.title.contains('x')).foreach(x => println(x.title))
books.filter(x => x.title.startsWith("悬疑小说")).foreach(x => println(x.title))
}
}