LoginSignup
2
2

More than 5 years have passed since last update.

Kotlinまとめ - 基本的な文法 - 条件分岐, ループ

Last updated at Posted at 2018-07-14

条件分岐

if

書き方はJavaと同じ
Kotlinのifは式なので結果を代入できる

val score = 70
val message = if (score >= 60) "合格" else "不合格"
println(message)

Kotlinには三項演算子がないが、if-elseが式なのでこれで代用できる
else ifをつなげることで三項演算子よりも更に多くの条件で分岐した結果を取得できる

when

  • Javaのswitch文の強化版
    • breakが不要
    • 条件分岐部分に定数以外を指定可能
  • 値を返すwhenは基本的にはelseが必須
  • if-elseをつなげるよりはwhenのほうが見やすくなる
when (x) {
    1 -> "one"
    2, 3 -> "two or three"
    else -> "unknown"
}

// 定数以外の指定
when (x) {
    1 -> "one"
    getInt() -> "getInt(): $x"
    in 1 .. 10 -> "1 <= x <= 10"
    else -> x.toString()
}

ループ

while

// hello を3回出力
var count = 3
while (count-- > 0) {
    println("hello")
}

// Javaとの違いはdo-while内の変数をwhileの条件として使えること
do {
    val next = Math.random() < 0.5
} while (next)

for

for (要素名 in イテレタを提供するオブジェクト) {
    
}

// 例
for (x in arrayOf(1, 2, 3)) {
    println(x)
}

// ラベル付き
// 普通にbreakするとyのループを抜けるだけだが、この場合はxのループも抜ける
// Swiftにもある
loop@ for (x in 1 .. 10) {
    for (y in 1 .. 10) {
        if (y == 5)
            break@loop
    }
}

イテレータを提供するオブジェクトとは?

  • iterator()メソッド、または拡張関数を持つオブジェクトのこと
  • インターフェイスは以下
// 次の要素を返す
operator fun next(): T
// 次の要素があるかを返す
operator fun hasNext(): Boolean

← 基本的な文法 - 型 || 文法詳解 - 関数 →

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2