1 of 22

東北TECH道場

ープログラミングの基本ー

東北TECH道場講師 高橋憲一

2 of 22

https://goo.gl/9cX6zf

このスライドのurl

3 of 22

プログラミングの基本要素

  • 変数
  • 分岐
  • ループ

4 of 22

前準備

新規プロジェクト作成

5 of 22

前準備

activity_main.xml に黄色の行を追加

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView android:id="@+id/textview"

android:text="@string/hello_world" android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</RelativeLayout>

6 of 22

変数

計算結果や文字列などを入れておくための箱

String, int 等。

7 of 22

MyActivity.java

黄色の行を入力してみましょう。

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String greeting = "こんにちは";

TextView textView = (TextView) findViewById(R.id.textview);

textView.setText(greeting);

}

8 of 22

String greeting = "こんにちは";

String … 変数の型。文字列型

greeting … 変数の名前

= … 代入を意味する。

"こんにちは" … 代入する内容。

        ” で囲むと文字列

9 of 22

分岐

if (条件式){

….

} else {

….

}

10 of 22

時間で挨拶を変えてみる

  • 0時から12時
    • おはよう
  • 12時から16時
    • こんにちは
  • 17時から24時
    • こんばんは

11 of 22

現在時刻を取得して分岐させる

緑色の行を入力してみましょう。

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String greeting = "こんにちは";

Date trialTime = new Date();

Calendar calendar = new GregorianCalendar();

calendar.setTime(trialTime);

int hour = calendar.get(Calendar.HOUR_OF_DAY);

if (hour > 0 && hour < 12) {

greeting = "おはよう";

} else if (hour > 15) {

greeting = "こんばんは";

}

TextView textView = (TextView)findViewById(R.id.textview);

textView.setText(greeting);

12 of 22

これから作るアプリ

睡眠誘導アプリ

13 of 22

MainActivity.java

黄色の行を入力してみましょう。

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String greeting = "こんにちは";

Date trialTime = new Date();

Calendar calendar = new GregorianCalendar();

calendar.setTime(trialTime);

int hour = calendar.get(Calendar.HOUR_OF_DAY);

if (hour > 0 && hour < 12) {

greeting = "おはよう";

} else if (hour > 15) {

greeting = "こんばんは";

}

greeting += "。。。ひつじが1匹。。。ひつじが2匹。。。ひつじが3匹。。。";

TextView textView = (TextView) findViewById(R.id.textview);

textView.setText(greeting);

}

14 of 22

眠れるまで何十回も書くのか?

15 of 22

ループ(繰り返し処理)

ひつじが1匹

ひつじが2匹

ひつじが3匹

.

.

.

16 of 22

for ループ

for (i = 1; i < 10; i++ ) {

}

i … カウンタ

i < 10 … 条件式

i++ 回数カウント

17 of 22

MainActivity.java

黄色の行を入力してみましょう。

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String greeting = "こんにちは";

Date trialTime = new Date();

Calendar calendar = new GregorianCalendar();

calendar.setTime(trialTime);

int hour = calendar.get(Calendar.HOUR_OF_DAY);

if (hour > 0 && hour < 12) {

greeting = "おはよう";

} else if (hour > 15) {

greeting = "こんばんは";

}

int sheepNum = 10;

for (int i = 1; i <= sheepNum; i++) {

greeting += "。。。ひつじが" + i + "匹";

}

TextView textView = (TextView)findViewById(R.id.textview);

textView.setText(greeting);

}

18 of 22

もっとインタラクティブに

画面をタップするとカウントするように。

19 of 22

前準備

activity_main.xml に黄色の行を追加

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:id="@+id/rootLayout"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView android:id="@+id/textview"

android:text="@string/hello_world" android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</RelativeLayout>

20 of 22

MainActivity.java

黄色の行を入力、緑の部分を修正、赤の部分を削除してみましょう。

public class MainActivity extends AppCompatActivity {

TextView textView;

int sheepCount = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String greeting = "こんにちは";

Date trialTime = new Date();

Calendar calendar = new GregorianCalendar();

calendar.setTime(trialTime);

int hour = calendar.get(Calendar.HOUR_OF_DAY);

if (hour > 0 && hour < 12) {

greeting = "おはよう";

} else if (hour > 15) {

greeting = "こんばんは";

}

int sheepNum = 10;

for (int i = 1; i <= sheepNum; i++) {

greeting += "。。。ひつじが" + i + "匹";

}

(次ページに続く)

21 of 22

MainActivity.java (続き)

(前ページからの続き)

greeting += "。。。ねむれませんか?";

TextView textView = (TextView)findViewById(R.id.textview);

textView.setText(greeting);

View view = findViewById(R.id.rootLayout);

view.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

sheepCount++;

String text = "ひつじが" + sheepCount + "匹";

textView.setText(text);

}

});

}

22 of 22

この後は...

こちらのドキュメントを参照してください。

http://goo.gl/WvuZ5v