プログラミングの四則演算で学ぶ、変数とデータ型初心者のためのAndroid&Javaで始めるプログラミング入門(3)

初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。今回は、プログラミングの四則演算を通じて、変数とデータ型を理解しよう。

» 2018年04月13日 05時00分 公開
[多田丈晃株式会社ビーブレイクシステムズ]

 「今までアプリを作ったことがないけど作ってみたい」という方を対象にAndroidのスマートフォンアプリの作り方を紹介する本連載「初心者のためのAndroid&Javaで始めるプログラミング入門」。

 連載第1回では、アプリを作成するためには、アプリがどのように動作するかの指示書である「ソースコード」の作成と、ソースコードをアプリとしてインストールできる形式に変換する「ビルド」という作業が必要であること、ソースコードの作成とビルドのどちらも行える統合開発環境と呼ばれるツールを用いてアプリ開発を行うことを紹介しました。

 第2回では、Androidアプリ開発で使う統合開発環境「Android Studio」を使い、ソースコードからアプリを実行する方法を紹介しました。

 連載3回目の今回からアプリ作りを始めます。アプリ作りは今回だけで完成するものではありません。連載を読み進めながら段階を踏んで作り、その過程でJavaのプログラミングについても勉強していきます。

 これから本連載で作るアプリは「計算機アプリ」です。計算機アプリは世の中にたくさん存在していて、どのようなアプリかイメージしやすいです。そのため、プログラミングについての知識について学ぶことに集中できるでしょう。

 今回は、計算機に必要な計算をどのようにプログラミングで実現するかを学びましょう。

計算機アプリのプロジェクトを作ろう

 まずは計算機アプリのプロジェクトを作成するところから始めましょう。Android Studioのメニューの「File」から「New Project...」を選ぶと、プロジェクト新規作成の画面が開くので「Application name」に「My Culc」と入力してください。

 入力したら「Next」ボタンを押し次の画面に進みます。

 前回も説明した通り、ここは「どのAndoridで動作するアプリを作成するか」を決めるところです。今回作成するアプリには特に新しい機能を使う必要はないので、何も変更せずに「Next」ボタンを押し、次に進みます。

 この画面では「どのような画面を作るか」を選択するところです。今回は「Empty Activitiy」を選択し、「Next」ボタンを押し、次に進みます。

 選択したActivityの設定を変更する画面ですが、ここはそのままで「Finish」ボタンを押してください。これでプロジェクトの作成は完了です。

プログラミングとは

 ここで本連載の第1回を復習します。

 プログラミングとはどういうことを指しているのでしょうか。忘れてしまった人は連載1回目の『アプリの動作指示書を作成する「プログラミング」とは』を見直しておきましょう。

 アプリを動作させる指示書はどこに書くのでしょうか。Androidアプリを作るためにはJavaでプログラミングすることが基本になっています。先ほど作成したプロジェクトには既にJavaのプログラムが書かれた「MainActivity.java」が作成されています。

 Javaプログラミングは、このファイル名の末尾が「.java」ファイルにプログラムを記述することです。ただ、今紹介したMainActivity.javaは書いている内容がAndroidの特有な機能を使うものなので、今は内容が分からなくても大丈夫です。Androidアプリの画面を作るときに説明します。

 今回は、そういうAndroidアプリのところは横に置いて、基本的なプログラミングの基礎から四則演算の方法を学びます。

四則演算の仕方を学ぼう

 四則演算は加減乗除と割り算の余りを指しています。計算自体は算数の計算と同じです。例えば、「1+3」という計算の結果は「4」になります。演算に使用する記号(以下、算術記号)もほとんど手計算と同じなので迷うことはないでしょう。

No. 演算 算術記号
1 足し算 +
2 引き算 -
3 掛け算 *
4 割り算 /
5 割り算の余り %

 では計算を行い、その結果をAndroid Studioの「コンソール」画面に出力しましょう。コンソールは、Android Studioの状態によりますが、おおよそ画面左下にあります。出ていない人は「6: Logcat」というボタンを押すと表示できます。

 上の行にあるプログラムでは、計算を行うだけで、計算した結果はどこにも現れません。そのため、計算結果を保存したり、画面に表示したり、計算結果を何らかの形で処理する必要があります。

 では、ここで作成したプロジェクトに「計算結果をAndroid Studioの画面に表示する」プログラムを書きましょう。MainActivity.javaの11行目「setControllView(R.layout.activity_main);」の後に以下のプログラムを記述してください。

System.out.println(1 + 2);

 また全ての文字は半角で記述します。11行目の後に改行して記述すれば以下のようになっていると思います。

 12行目に空行を入れているのはプログラムを見やすくするために1行空けただけですので、空いていなくても問題ありません。

 もしかすると、以下のように赤いアンダーラインが表示されている方もいるのではないでしょうか。

 これは行の最後のセミコロンが全角になっているためです。このようにプログラムの中に“誤り”があると、Android Studioは警告を出してくれます。

 なおJavaを使ったプログラミングでは、半角全角、小文字大文字を区別しなければいけません。見た目は同じように見えても、別のものとして認識されるためです。

 では、赤いアンダーラインがあった人はその箇所を修正してください。そして、前回と同様にAndroid Studioの実行ボタン(画面上部の緑色の矢印ボタン)を押してビルドを行い、プログラムを起動しましょう。動かし方を忘れた人は前回の内容を見直してください。

 プログラムを動かすと画面が表示されますが、それは前回と変わっていません。先ほど追加した記述の意味は「コンソールにresultの結果を表示する」ということです。

 コンソールを見てみましょう。

12-18 16:14:16.729 3123-3123/com.example.user1.myculc I/System.out: 3

 コンソールには上記のような一文が表示されています。「System.out: 3」という記述があると思います。これは「計算結果として『3』が出力されている」という意味です。

変数とは

 「変数(variable)」とは、日本語の一般的な説明では「何らかのデータを入れておく箱のようなもの」とされています。今回は、計算結果を保存するために変数を使います。変数は、字が表す通り、値を一度設定した後に“変”更することも可能です。変数には数値だけではなく、文字列などさまざまなデータを入れることができます。

 なお、変数とは反対に「定数(constant)」という一度“定”義したら値が変わらないものもあります。

 では、先ほどの計算結果を一度変数に入れて、画面に出力するようにプログラムを変更しましょう。先ほどプログラムに記述した「System.out.println(1 + 2);」を以下のように書き換えてください。

int result = 1 + 2;
System.out.println(result);

 こうすることで「計算結果を変数に入れ、その変数の中身を表示する」プログラムに変わります。ただ、計算の内容自体は変更していないので、表示される結果は同じです。

 なお、新たな変数を作ることを「変数を宣言する」といいます。

データ型とは

 変数を作ったところの行についてもう少し、詳しく見ていきましょう。

データ型 変数名 イコール 変数に入れる値 セミコロン
プログラム int result = 1 + 2 ;

 左から順に説明していくと以下のようになります。

  • データ型:変数に対してどのようなデータが入るかを表す。データ型の種類は下記「代表的なデータ型の表」を参照
  • 変数名:変数の名前。変数の名前を使用して、保存した結果を再利用する
  • 変数に入れる値:イコール記号の右側。今は計算内容を記述する
代表的なデータ型の表
データ型 データの内容
int 整数 100、-12
long intより桁の大きな整数 123456789012、-987654321098
float 少数 1.2、-987.23
double floatより大きな小数 1.23456789012、-987654321.098
char 文字(1文字だけ) n、あ、八
String 文字列 abcde、アイウエオ

 なお、基本的にはイコールの左右のデータ型が一致していないとエラーになります。先ほどの計算式は整数の数値を足していたので、結果も整数になります。よって、結果を入れる変数のデータ型も、整数のデータ型である「int」を使っています。

 では、変数を使って一度計算した結果を使って別の計算を行ってみましょう。「System.out.println(result);」の後に以下の行を追加します。

result = result * 100;

 この行では、resultの値を100倍して、その計算結果をresultに上書きしています。実行すると、コンソールに「300」という結果が表示されるでしょう。

 なお、ここでは行の先頭でデータ型を記述していません。これは既に作った変数に対して値を設定し直しているからです。ここであえてデータ型を書くと、「同じ名前の変数を宣言した」ということでエラーになってしまいます。

 また、イコールの右側に変数がありますが、この場合は「変数のデータを使う」という意味になります。同じ変数を記述してもイコールの左右で変数の使われ方が異なります。

 さらに、計算式は算数と同様に優先順位があります。算数同様、「掛け算と割り算」は「足し算と引き算」より先に計算されます。そして、カッコに入れることで計算の順番を変えることができます。

 先ほどの行を以下のように修正してください。

result = result + 3 * 100;

 こちらを実行すると、かけ算が優先されるので、先に「3×100」が計算されます。そして、resultの値を足すので「3+300」で結果は「303」になります。

 次に、この式にカッコを使って計算の順番を変えてみましょう。

result = (result + 3) * 100;

 こうなると計算の順番が変わり、変数の値と3を足す計算が先になります。ですので、「3+3」がまず計算され結果は「6」になります。次に「6×100」が計算され、最終的にresultには「600」が入ります。

 最後に計算で一番気を付けなければいけない割り算について触れます。また先ほどの行を以下のように変えてください。

result = (result + 3) * 100 / 7;

 この計算式は割り切れません。算数的には「85.714...」となります。修正した後にプログラムを動かすとどうなるでしょうか。結果を見ると「85」が表示されます。

 割り切れない割り算の計算結果を整数型に入れると小数点以下は切り捨てられます。小数点以下の計算結果を使いたい場合は計算結果をdouble型などの小数点以下を扱えるデータ型の変数に入れましょう。

おまけ「計算結果を画面に表示する」

 これで、今回の学習内容は終わりですが、せっかくなので、この結果をAndroidの画面に表示して見ましょう。修正箇所については細かくは説明しませんが、順を追って修正すれば計算結果を画面に表示できます。

 まずは、activity_main.xmlを開いて、以下の行を削除してください。

android:text="Hello World!"

 次に消したところに以下の行を追加してください。

android:id="@+id/outText"

 これで画面に表示するための場所として「outText」ができます。ここでactivity_main.xmlを保存してください。

 次に、MainActivity.javaを編集します。「System.out」の行の下に以下の行を追加してください。

TextView text = (TextView)findViewById(R.id.outText);
text.setText("計算結果=" + result);

 追加した行はactivity_main.xmlで作成したTextViewをプログラム内で操作できるようにして、TextViewに計算した結果を入れています。

 これだけでは追加した行内にある「TextView」が解決できないというエラーが出ます。ファイルの上部にある「import」で始まる行が幾つかあるので、その最後の行の下に以下の行を追加してください。

import android.widget.TextView;

 最終的には、プログラムはこのようになっています。

 これで画面上に計算結果が表示されます。前回と同様にAndroid Studioの実行ボタンを押してプログラムを起動しましょう。このような画面が表示されると思います。

次回は、条件分岐と繰り返しについて

 これで基本的なプログラムの作り方を学ぶことができました。次回は条件分岐と繰り返しについて学びます。お楽しみに。

筆者紹介

多田 丈晃(ただ たけあき)

2008年から、株式会社ビーブレイクシステムズに在籍。

システム開発に従事する傍ら、新しい技術ネタを分かりやすく伝える執筆活動や講演をライフワークにしている。

著書に『即戦力にならないといけない人のためのJava入門』(翔泳社)『みんなのAndroidアプリ制作 App Inventorで はじめの一歩からアプリ配信まで』(ソフトバンククリエイティブ )がある。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。