package com.lyzx.scalaLearn
class Day03 {
//如果一个方法没有参数可以直接通过对象.方法名的方式调用,不用加括号
def f1(): Unit ={
println("这是一个没有参数的方法.....")
}
//如果str是一个字符串那么str(2)就是字符串的第3个字符
def f2(): Unit ={
val str:String ="123456"
println("str(2):"+str(2))
println("str.apply(2):"+str.apply(2))
}
//if/else后面的值就是表达式的值 并且可以把它赋值给一个变量
//在java中可以使用 ?: 三目运算符来做相同的操作
def f3(): Unit ={
val x = 99
val y = if(x > 0) 1 else -1
println("y="+y)
//这个表达式即有可能返回字符串类型又有可能返回整型
val z = if(x >0) "" else -1
println("z="+z+"="+z.getClass.getName)
//如果没有else语句则返回值是Unit即()
//Unit 相当于java中的void但又有所不同 void相当于钱包里没有钱 Unit相当于钱包里有一张写着没钱的没有面值的钞票
val a = if(x<0) -1
println("a="+a+" "+a.getClass.getName)
}
def f4(): Unit ={
val s = "abcdefg"
for(v <- 0 until s.length){
print(v+" ")
}
println()
var sum = 0
for(ch <- "hello"){
print("-"+ch)
sum += ch
}
println(sum)
}
//关于scala中循环退出的问题
def f5(): Unit ={
//1、直接退出整个循环(多层循环)
for(i <- 1 to 5){
for(j <- 1 to 3){
println(i+"-"+j)
if(i == 3 && j == 2 ){
return
}
}
}
println("=============================")
}
//关于scala中循环退出的问题
def f6(): Unit ={
import scala.util.control.Breaks._
//使用Breaks退出Break块
for(i <- 1 to 5){
breakable{
for(j <- 1 to 3){
println(i+"="+j)
if(i == 3 && j == 1 ){
break
}
}
}
}
}
//关于scala中循环退出的问题,模拟java中的break
def f7(): Unit = {
var b1 = true
val sum1 = 10
var v1 = 0
var b2 = true
val sum2 = 10
var v2 = 0
while(v1 < sum1 && b1){
v2 = 0
b2 = true
while(v2 < sum2 && b2){
println(v1+"-"+v2)
if(v1 == 3 && v2 == 5){
b2 = false
}
v2 += 1
}
v1 += 1
}
}
//
def f8(): Unit ={
var b1 = true
val sum1 = 10
var v1 = 0
var b2 = true
val sum2 = 10
var v2 = 0
import scala.util.control.Breaks._
while(v1 < sum1 ){
v2 = 0
breakable{
while(v2 < sum2){
println(v1+"<>"+v2)
if(v1 == 3 && v2 == 5){
break()
}
v2 += 1
}
}
v1 += 1
}
}
//for的高级循环
def f9(): Unit ={
//通过 N to M 生成一个序列 每一个序列可以带一个守护(过滤条件)用来过滤掉一部分序列
for(i <- 1 to 6 if i != 3){
print(i+" ")
}
println()
for(i <- 1 to 5 if(i >= 3) ;j <- 1 to 3 if i != j){
println(i +" "+j)
}
}
}
object Day03{
def main(args: Array[String]): Unit = {
val t = new Day03
// t.f1
// t.f2
// t.f3
// t.f4
// t.f5
// t.f6
// t.f7
// t.f8
t.f9
}
}