[ツイスト]フロー制御構文と演算子
💌 フロー制御構文と演算子
📌 条件文
💜 if式
world
hello..30
💜 式#シキ#
1)整数分岐
a2 == 1
2)分岐が整数以外の値
data1 is hello
3)複数の値に分岐
11 <= data3 <== 20
5)マルチブランチ
7)式として使用
📌 複文
💜 複文
55
コレクションタイプの使用
HelloWorld!
コレクションタイプのインデックス値の使用
Hello
World
!
コレクション・タイプのインデックスと値の使用
the element at 0 is Hello
the element at 1 isWorld
the element at 2 is!
for(iin 1.200)->100を含む
for(i in 1~100)-含まない>100
for(xin 2.10ステップ2)->2インクリメンタル
for(xin 10 downTo)->数字を減らす
💜 複文 break: continue:{}上の最後の行実行フロー ラベル宣言:aaa@/ラベルを指す場合:@aaa 📌 演算子
💜 代入演算子
=:割り当て
💜 算術演算子
+、-、*、/、%:加算、減算、乗算、除算、その他
💜 展開演算子
*A:Aアレイのデータのリスト
1
2
10
20
30
100
200
💜 複合代入演算子
+=, -=, *=,/=, %=
💜 増減演算子
++, --
💜 論理演算子
&& : AND
|| : OR
! : NOT
💜 一致演算子
==, != : 比較値
===, !== : オブジェクトの比較
💜 比較演算子
<, >, <=, >=
💜 範囲演算子
..
💜 Nullセキュリティ演算子
? val a: Int? -> 変数を空にする
?: A ?: B->Aが空の場合、Bを実行
?. A?.length->Aがnullの場合null、そうでない場合length
!! A!!B->Aがnullでない場合のみBが実行され、nullである場合異常が発生します
📌 演算子の再定義
💜 演算子の再定義方法
オペレータリザーバを再定義する関数の前に追加
💜 演算子関数
+a : a.unaryPlus()
-a : a.unaryMinus()
!a : a.not()
a++ : a.inc()
a-- : a.dec()
a+b : a.plus(b)
a-b : a.minus(b)
ab : a.times(b)
a/b : a.dev(b)
a%b : a.rem(b) , a.mod(b)(deprecated)
a..b : a.rangeTo(b)
a in b : b.contains(a)
a !in b : !b.contains(a)
a[i] : a.get(i)
a[I,j] : a.get(I,j)
a[i] = b : a.set(I,b)
a[I,j] = b : a.set(I,j,b)
a() : a.invoke()
a(i) : a.invoke(i)
a(i,j) : a.invoke(I,j)
a+=b : a.plusAssign(b)
a-=b : a.minusAssign(b)
a=b : a.timesAssign(b)
a/=b : a.divAssign(b)
a%=b : a.modAssign(b)
a===b : a?.equals(b) ?: (b===null)
a!=b : !(a?equals(b) ?: (b===null)
a>b : a.compareTo(b) > 0
a
📌 条件文
💜 if式
// 표현식으로서의 if문
val result = if(a>0) "hello" else "world" // -> 표현식일 경우 else문 생략 불가능
println(result)
// if 표현식의 반환값
val result2 = if(a<10){
println("hello.."
10 + 20 // -> { }사용할 때 데이터를 맨마지막에 작성
} else {
print("world..")
20+20
}
prinln(result2)
🖥world
hello..30
💜 式#シキ#
1)整数分岐
fun main(args: Array<String>){
val a2 = 1
when (a2){
1 -> println("a2 == 1")
2 -> println("a2 == 2")
else -> println("a2 is neither 1 nor 2")
}
}
🖥a2 == 1
2)分岐が整数以外の値
val data1 = "hello"
when(data1){
"hello" -> println("data1 is hello")
"world" -> println("data1 is world")
else -> println("data1 is not hello or world")
}
🖥data1 is hello
3)複数の値に分岐
when(data2){
10, 20 -> println("data2 is 10 or 20")
30, 40 -> println("data2 is 30 or 40")
some() -> println("data2 is 50")
30 + 30 -> println("data2 is 60")
}
4)範囲値への分岐when(data3){
!in 1..100 -> println("invalid data")
in 1..10 -> println("1 <= data3 <= 10")
in 11..20 -> println("11 <= data3 <== 20")
else -> println("data2 > 20")
}
🖥11 <= data3 <== 20
5)マルチブランチ
fun testWhen(data: Any){
when(data){
1-> println("data value is 1")
"hello" -> println("data value is hello")
is Boolean -> println("data value is Boolean")
}
}
6)ifelse置換7)式として使用
📌 複文
💜 複文
fun main(args: Array<String>){
var sum: Int = 0
for(i in 1..10){ // 1부터 10까지 1씩 증가하면서 i에 대입하고 10번 반복
sum += i
}
}
🖥55
コレクションタイプの使用
val list = listOd("Hello", "World", "!")
val sb = StringBuffer()
for(str in list){
sb.append(str)
}
println(sb)
🖥HelloWorld!
コレクションタイプのインデックス値の使用
for(i in list.indices){
println(list[i])
}
🖥Hello
World
!
コレクション・タイプのインデックスと値の使用
for((index, value) in list.withIndex()){
println("the element at $index is $value")
}
🖥the element at 0 is Hello
the element at 1 isWorld
the element at 2 is!
for(iin 1.200)->100を含む
for(i in 1~100)-含まない>100
for(xin 2.10ステップ2)->2インクリメンタル
for(xin 10 downTo)->数字を減らす
💜 複文
while (x<10) {
sum1 += ++x
}
💜 break文とcontinue文、ラベル💜 代入演算子
=:割り当て
💜 算術演算子
+、-、*、/、%:加算、減算、乗算、除算、その他
💜 展開演算子
*A:Aアレイのデータのリスト
val array1 = arrayOf(10, 20, 30)
val list = asList(1, 2, *array1, 100, 200)
list.forEach({println(it)})
val list3 = listOf<String>("a", "b")
some(*list3.toTypedArray()) // 배열 데이터로 변경해서 이용
🖥1
2
10
20
30
100
200
💜 複合代入演算子
+=, -=, *=,/=, %=
💜 増減演算子
++, --
💜 論理演算子
&& : AND
|| : OR
! : NOT
💜 一致演算子
==, != : 比較値
===, !== : オブジェクトの比較
💜 比較演算子
<, >, <=, >=
💜 範囲演算子
..
💜 Nullセキュリティ演算子
? val a: Int? -> 変数を空にする
?: A ?: B->Aが空の場合、Bを実行
?. A?.length->Aがnullの場合null、そうでない場合length
!! A!!B->Aがnullでない場合のみBが実行され、nullである場合異常が発生します
📌 演算子の再定義
💜 演算子の再定義方法
オペレータリザーバ
💜 演算子関数
+a : a.unaryPlus()
-a : a.unaryMinus()
!a : a.not()
a++ : a.inc()
a-- : a.dec()
a+b : a.plus(b)
a-b : a.minus(b)
ab : a.times(b)
a/b : a.dev(b)
a%b : a.rem(b) , a.mod(b)(deprecated)
a..b : a.rangeTo(b)
a in b : b.contains(a)
a !in b : !b.contains(a)
a[i] : a.get(i)
a[I,j] : a.get(I,j)
a[i] = b : a.set(I,b)
a[I,j] = b : a.set(I,j,b)
a() : a.invoke()
a(i) : a.invoke(i)
a(i,j) : a.invoke(I,j)
a+=b : a.plusAssign(b)
a-=b : a.minusAssign(b)
a=b : a.timesAssign(b)
a/=b : a.divAssign(b)
a%=b : a.modAssign(b)
a===b : a?.equals(b) ?: (b===null)
a!=b : !(a?equals(b) ?: (b===null)
a>b : a.compareTo(b) > 0
a
Reference
この問題について([ツイスト]フロー制御構文と演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@soyoung-dev/흐름-제어-구문과-연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol