Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

「Try Kotlin」もう少し触ってみます!

 どうも!LSSです!!

 

 AndroidStudio+Kotlinでアプリ開発の勉強中です。

 

 昨日の記事、

たくさんのブクマとアクセスをいただき、誠にありがとうございました^^

 

 調子づいたので、もう少し触ってみたいと思います!

 

 

 

もう一度リンク張ります

 

try.kotlinlang.org

↑このリンクをクリックするだけで、ブラウザ上でKotlinを試せる環境が出てきます^^

 

 

今回は、実用的?なコードを書いていきます

 

…といっても、前回の最後に書いたサイコロのような「実用的??」って感じのを、ですがw

 

 では、いきまーす!

 

 

f:id:little_strange:20200210034736p:plain

 

1から100までの整数を全て足したらいくつになる?

 

 これ、数学的に実は簡単に計算する方法もありますが、素直に足し算していくと
とっても面倒ですよね。

 

 面倒な計算はコンピューターに任せてしまいましょう!

 

f:id:little_strange:20200210024644p:plain

↓こういうコードを書きました。

var goukei=0
fun main(args: Array<String>) {
    for(i in 1..100){
        goukei+=i
    }
    println("合計は${goukei.toString()}になります。")
}

では、右上のを押して実行してみます。

 

f:id:little_strange:20200210024759p:plain

 

 一瞬で計算してくれますね^^

 

 軽くコードを解説すると、

 

    for(i in 1..100){
        goukei+=i
    }

 

 forはループ処理に使います。

 forの後に続く、(i in 1..100)がループを管理している記述で、
iが1の場合、から始めて

iが2の場合、3の場合、…と1づつ増やしながら、後ろの

{
    goukei+=i
}

をiが100の場合まで計算します。

 

goukei+=i

が100回、iの値が増えながら実行されますが、この

+=

という書き方は、「左の変数(goukei)の値に右の変数(i)を足す」という意味になります。

 

 これが例えば、

「101~347までの整数を全て足したらいくつ?」みたいな計算をしたくなったら、

    for(i in 101..347){
        goukei+=i
    }

というように赤文字にした部分だけ書き換えれば、

f:id:little_strange:20200210030117p:plain

↑この通り、一瞬で計算してくれます。

(需要があるかどうかは分かりませんwww)

 

 

 

 

小学生の算数のドリルを作りたい!

 

 小学校の先生必見!!(…かどうかは分かりませんがw)

 

「子どもたちの夏休みの宿題に
 『1桁の数字と1桁の数字を足し算する問題』
 を100問、大急ぎで作りなさい!」

 

…なんて言われたら?

 それもKotlinにお任せしてしまいましょう!

 

 

f:id:little_strange:20200210031751p:plain

 

 はい。100行なので欄に収まりきってはいませんが、スクロールバーがあってちゃんと100行出力されているのでご心配なく^^

 

コードはこんな感じです。

 

import kotlin.random.Random
var a=0
var b=0
fun main(args: Array<String>) {
    for(i in 1..100){
        a=Random.nextInt(9)+1
        b=Random.nextInt(9)+1
        println("${a.toString()}+${b.toString()}=")
    }
}

 

 これも軽く解説すると、

Random.nextInt(9)+1

この、Random.nextInt(9)は「0~8」までのいずれかの整数がランダムに出てきます。

 それに+1をする事で「1~9」までのランダムな整数、に補正しています。

 

で、変数aとbにそれぞれランダムな整数を設定して、

println("${a.toString()}+${b.toString()}=")

で問題文のカタチにして出力する、という事ですね。

 

ただし…

  • 乱数任せなので同じ問題が続く可能性がある
  • 答えは自分で用意する必要がある

という難点はあります^^;;;(もうちょっとプログラムに手を加えれば改善可能ですが)

 

 

 

Kotlinをもっと色々試したい時は

 

↑LSSが何冊か購入した本のうちでは、この本が「素のKotlin」について分かりやすいと感じました^^

 Androidについては最終章で扱っているだけで、それ以外の章でクラスや関数、変数の取り扱いについて分かりやすいサンプルを用いて解説されています。

 

 本を買わなくても、ネット上でも様々なサイトで情報が見つかるかと思います。

 

 

…このブログでも「分かりやすい!」と思ってもらえるような解説が書けるといいなぁw

 

では、今回はこのへんで!

 次回もまた、よろしくお願いいたします^^