scala基礎知識総括(二)forサイクル応用、サンプルコードを含む
10985 ワード
文書ディレクトリ7、循環構造 7.1 forループの基本用法 7.2 scalaネストサイクルの簡略化方法 7.3守備 7.4 for導出式 7.5 breakとcontinue 7、循環構造
7.1 forループの基本的な使い方
7.2 scalaネストサイクルの簡略化方法
原:2つのforループを書く必要があります
簡略化:forループを1つだけ書き、ネストされたループ間を分割します.
7.3守備
scalaではforサイクル括弧にif判定条件を加えることができ,これをガードと呼び,各サイクル変数はガードの判定を経なければならない.
例:
7.4 for導出式
forのループボディの前にyieldキーワードが現れた場合、このforループは導出式と呼ばれ、このforループはセットを返します.
例:
7.5 breakとcontinue
scalaではbreakキーとcontinueキーを削除しますが、scala特有の方法でbreakキーとcontinueキーを実現できます.
ステップ1:実装機能のパッケージのインポート
break機能を実現し、breakable{forループ}を使用してforループを包み、ループ内でbreak()を呼び出す
例:
continue機能を実現するには、break機能の実現とは大きく異なり、breakable(循環体)は循環内部にあり、その包まれているのは循環体全体である
例:
.1小練習1:九九乗算表コンソール印刷出力九九乗算表
参考答案:
.2小练习2:アナログ登录は上の知识を结び付けて、scalaコードでユーザー登录の情景をシミュレートして、アカウントはzhangsanで、パスワードは123で、3回の登录が失败するとアカウントをロックします
参考答案:
7.1 forループの基本的な使い方
for(i
7.2 scalaネストサイクルの簡略化方法
原:2つのforループを書く必要があります
for (i <- 1 to 3){
for(j <- 1 to 5) if(j==5) println("*") else print("*")
}
簡略化:forループを1つだけ書き、ネストされたループ間を分割します.
for (i <- 1 to 3; j <- 1 to 5) if(j==5) println("*") else print("*")
7.3守備
scalaではforサイクル括弧にif判定条件を加えることができ,これをガードと呼び,各サイクル変数はガードの判定を経なければならない.
例:
for(i <- 1 to 10 if i % 3 == 0){ //
println(i)
}
7.4 for導出式
forのループボディの前にyieldキーワードが現れた場合、このforループは導出式と呼ばれ、このforループはセットを返します.
例:
val set1 = for(i <- 1 to 5) yield {
i * 5
}
// set1 = Vector(5, 10, 15, 20, 25)
7.5 breakとcontinue
scalaではbreakキーとcontinueキーを削除しますが、scala特有の方法でbreakキーとcontinueキーを実現できます.
ステップ1:実装機能のパッケージのインポート
import scala.util.control.Breaks._
break機能を実現し、breakable{forループ}を使用してforループを包み、ループ内でbreak()を呼び出す
例:
breakable{
for(i <- 1 to 10){
if(i == 5) break() // i 5 , 1,2,3,4
println(i)
}
}
continue機能を実現するには、break機能の実現とは大きく異なり、breakable(循環体)は循環内部にあり、その包まれているのは循環体全体である
例:
for(i <- 1 to 10){
breakable{
if(i % 2 == 0) break() // i ,break() , 1,3,5,7,9
println(i)
}
}
.1小練習1:九九乗算表コンソール印刷出力九九乗算表
参考答案:
for(i <- 1 to 9; j <- 1 to i){ //
print(s"${i} + ${j} = ${i+j}\t") //
if(i == j) println()
}
.2小练习2:アナログ登录は上の知识を结び付けて、scalaコードでユーザー登录の情景をシミュレートして、アカウントはzhangsanで、パスワードは123で、3回の登录が失败するとアカウントをロックします
参考答案:
import scala.io.StdIn
import scala.util.control.Breaks._
breakable{
for(i <- 1 to 3){
println(" :")
val user = StdIn.readLine()
println(" :")
val password = StdIn.readLine()
//
if(user == "zhangsan" && password == "123"){
println(" !")
break() //
}else{
if(i == 3) println(" !")
else println(s" , ${3-i} !")
}
}
}