見出し画像

【Androidアプリ】勉強2回目_値の判定【おみくじ】

◆今日やったこと


・Android Studioのインストール
・おみくじアプリ作成(未完成)
①変数の宣言
②条件分岐
③値の判定
前回の勉強記事:https://note.com/a_a_t_t/n/n3a539a3a30d9

◆使ったもの

・Android Studioのインストール
→インターネットで検索
【参考URL】
macの場合:http://supportdoc.net/support-android/androsdk_mac.html
windowsの場合:http://supportdoc.net/support-android/androsdk.html
※macとwindows両方持っているのですが、どちらも上記のURLでインストールできました。
ただ、windowsは持っているノートPCが古かったのか仮想化機能がオンになっておらず、検索してBIOSでバーチャライゼーション(仮想化)をオンにする必要がありました。
インストールできたけどシミュレーターが上がらない、という方は
CPUが仮想化に対応しているか調査後、BIOSの設定変更をすればOKです。
シミュレーターが上がらない時:-PCでバーチャライゼーション-VT-を作動させるには-

・おみくじアプリ作成
→前回から使用している書籍
書籍:作って楽しむプログラミング Androidアプリ超入門
※2020/5/5 修正あり※
上記書籍が誤っていたため正しい書籍名とリンクに修正
(誤:JavaからはじめようAndroidプログラミング―Android Studio対応版
 正:作って楽しむプログラミング Androidアプリ超入門)

①変数の宣言

他の言語を知っていればすんなり理解できるところだと思います。
詳しい説明は書籍を読んだり色々な無料サイトで理解できると思うので省略。
下記のように記述します。(strが変数)

val str = "文字列"


※val で定義するとその後に値の変更ができないようです。
もし一度定義した後に違う値を入れる(中身を変えることがある)場合は
「val」ではなく「var」を使う必要があります。
初心者の私はここでしばらくエラーと格闘しました…。
(VBAでいうconstで定義して値の変更を不可にするのと同じようなものでしょうか。
にしても文字が似すぎでは…!)
ちなみに、書籍ではきちんと説明がありましたが、流し読みしていたため
見落としてしまいました。基本が大切。

②条件分岐

記述は下記の通りです(numberとstrが変数)
※numberが0の場合、strに大吉を代入する

if (number == 0 ) {
    str = "大吉"
}

③値の判定

条件分岐した値を判定するので、コード自体は変わらないのかな、と思いますが一応分けて書いてみました。
条件分岐を2つにして、どちらの条件が当てはまるか判定するコードは
下記の通りです。(numberとstrが変数)
※numberが0の場合、strに大吉を代入。
  numberが0の場合、strに 吉 を代入。

if (number == 0 ) {
    str = "大吉"
}
else if (number == 1) {
    str = "吉"
}

◆感想

 やっとコードを書くところまで辿り着きました。
シミュレーターで自分の打った文字列が表示されるとやっぱり「嬉しい〜!!」ってなりますね。たった1行の文字にめちゃくちゃテンションが上ってしまいました。すでに実機でテストする時が楽しみです。
(Androidユーザーなので昔使っていたスマホがあるので便利です。)


・今回の反省点
上記でも述べてきましたが、「var」と「val」の違いで詰まりました。
JavaもKotlinも初めて触るので、定義は「バル」だと思い込んでいたので
上記のように似た文字の定義が2種類あること、用途が違うことをはじめて知りました。
そのため、おみくじで「大吉、吉、凶」をランダムで表示させたいのに
最初の宣言で「val」を使っていたためにずっとエラーが出てしまいました。
まだエラーが出た時の勘所が分からないので、詰まると長考してしまいますね…。

 また、条件分岐の際に「==」を使うようになったので
文字列の代入をする時に誤って「==」を使ってしまった故のエラーも出してしまいました。これは純粋に凡ミスです。
値を代入する時は =


str = "吉"


条件式の時は ==
(正確に言うと「両辺が等しいならtrue」の場合の条件式の演算子は==)


if ( number == 0) {

}

頭で分かっていてもついつい打ち間違えてしまい、エラーが出ても
中々気付きにくいので、自分が間違えやすい点を覚えて
早く修正できるようになれるといいな、と思いました。

◆次回やることの予定

・配列を使う
・アプリに画像を入れる