Rangesを使用してループを回すときの基本的な表現を、
0~10までの数字を順番(昇順/降順)に並べるという簡単なお題でまとめた。
表現上でのルール
数字は0
と10
以外は使用できないものとしてみた。
(10
を含めたくない時に無理やり9
とか、10-1
とかで表現しないようにする。)
昇順
昇順 (〜を含めたい)
/**
* 昇順 (10を含めたい)
*/
/* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 */
for (i in 0..10) println(i) // forループで書いた場合
(0..10).forEach { println(it) } // forEachで書いた場合
昇順 (〜を含めたくない)
/**
* 昇順 (10を含めたくない)
* ex) listのindexとかでよく使う
*/
/* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 */
for (i in 0 until 10) println(i) // forループで書いた場合
(0 until 10).forEach { println(it) } // forEachで書いた場合
降順
降順 (〜を含めたい)
/**
* 降順 (10を含めたい)
*/
/* 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 */
for (i in 10 downTo 0) println(i) // forループで書いた場合
(10 downTo 0).forEach { println(it) } // forEachで書いた場合
for (i in 10..0) println(i) // forループで書いた場合
(10..0).forEach { println(it) } // forEachで書いた場合
降順 (〜を含めたくない)
/**
* 降順 (10を含めたくない)
* ex) listのindexとかでよく使う
*/
/* 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 */
for (i in (0 until 10).reversed()) println(i) // forループで書いた場合
(0 until 10).reversed().forEach { println(it) } // forEachで書いた場合
And more ...
割と組み合わせ方次第でなんとでも書ける感があるので、今回はこの辺で👋