0
Android道第1回numa08
お品書き コンピュータって何だろう? プログラムって何だろう? プログラミング言語、Javaって何だろう? Javaでプログラミングをしてみよう 休憩 九九の表を作ってみよう 九九以外の表も簡単に作ってみよう 実践!?Javaプ...
コンピュータって何だろう?@numa08:#AndroidTao1   2012/4/22
コンピュータとは!! 命じられた事は素早くこなす、それ以外は全くやらない         超指示待ち機械!!                                       命令(ソフト)が無ければ                ...
コンピュータとは!! 命じられた事は素早くこなす、それ以外は全くやらない         超指示待ち機械!!@numa08:#AndroidTao1                2012/4/22 http://ja.wikipedia.or...
プログラムって何だろう?@numa08:#AndroidTao1   2012/4/22
プログラムとは!!人間でもコンピュータでも理解出来る言語で書かれた命令のこと!!命令を書くこと、プログラムすることを、プログラミングと言うプログラムが書かれたテキストファイルをソースコードと言う   @numa08:#AndroidTao1  ...
コンピュータに命令するとき・・・ コンピュータは人語を理解出来ない!! 人間はコンピュータ語を理解出来ない!! 翻訳が必用!!@numa08:#AndroidTao1    2012/4/22
翻訳のイメージ日本人                                                                       フランス人      @numa08:#AndroidTao1          ...
プログラムとは!? 人間の言葉はルールが曖昧 話者、使用者、時代によって変化する もっと、厳密なルールの言語が必用 だったら、新しい言語だ!!@numa08:#AndroidTao1   2012/4/22
プログラミングのイメージ九九の表を作りたいなー     プログラミング                           翻訳    @numa08:#AndroidTao1        2012/4/22
プログラムとは!!人間でもコンピュータでも理解出来る言語で書かれた命令のこと!!命令を書くこと、プログラムすることを、プログラミングと言うプログラムが書かれたテキストファイルをソースコードと言う   @numa08:#AndroidTao1  ...
プログラミング言語って何だろう@numa08:#AndroidTao1   2012/4/22
プログラミング言語・・・? 人間でもコンピュータでも理解できる言葉 コンピュータに対しての命令を書く 実は色々と種類がある@numa08:#AndroidTao1    2012/4/22
様々なプログラミング言語                   C#          Brain                         Ruby          F*ck                  Java         ...
様々なプログラミング言語 言語毎に得意不得意がある でも、まあ今はあんまり気にしないで 結局はマシン語になる@numa08:#AndroidTao1   2012/4/22
Javaとは JavaVM vs DalvikVM オブジェクト思考…    継承    カプセル化    ポリモーフィズム    ダイナミックバインディング バイトコード Servlet @numa08:#AndroidTao...
Javaとは プログラミング言語の一つ 初心者が習得すると、今後も使える Android搭載端末では、Javaで書かれたプログラムをマシン語  に翻訳する@numa08:#AndroidTao1              2012/4/22
JavaとはAndroid搭載端末で動く、プログラミング言語ソースコードを見やすく、管理しやすくする工夫がある@numa08:#AndroidTao1        2012/4/22
まとめ@numa08:#AndroidTao1     2012/4/22
まとめ コンピュータとは   与えられた命令は高速にやるけど、命令されてないことは全くやら    ない機械 プログラムとは   コンピュータに対して書かれた命令。人間でもコンピュータでも理    解できる言葉で書かれている。   最終...
Javaプログラミングをしてみよう@numa08:#AndroidTao1   2012/4/22
Javaプログラミングをしてみよう Javaプロジェクトを作る 出力する 計算する 変数を使ってみる 条件分岐する 繰り返す@numa08:#AndroidTao1   2012/4/22
Javaプロジェクトを作る          • Newをクリック          • JavaProject をクリック              • Project name : AndroidTao1          • Finish...
Javaプロジェクトを作る• SRC を右クリック• New -> Package   • Name:       • jp.”yourname”.androidTao• パッケージを右クリック   • New -> Class       •...
何か出力してみよう  package jp.numa08.androidtao;  public class Main {      /**        * @param args        */      public static v...
何か出力してみよう Consoleに Hello World と表示されたら成功 やった、これで君もJavaプログラマーだっ!! 上手くいかなかった人挙手で @numa08:#AndroidTao1              2012/4...
変数を使ってみよう  package jp.numa08.androidtao;  public class Main {      /**        * @param args        */      public static v...
変数とは データを保存する箱の様な物 保存するデータの種類に合わせて宣言する必要がある@numa08:#AndroidTao1         2012/4/22
変数の宣言色々int x;//普通に宣言x = 14;//14 を代入int   y,z = 12;//yとzを同時に宣言。zに12を代入x =   5;//最後に代入された値が有効int   2ab;//数字で始まる変数はだめint   x;...
主な変数の種類int integer;// 整数double _double;// 小数String strings;// 文字列boolean true_fale;// 真偽値@numa08:#AndroidTao1   2012/4/22
計算しよう 数学っぽく計算は書くことができる!! 足し算 + 引き算 – 掛け算 * 割り算 / 余り %@numa08:#AndroidTao1   2012/4/22
計算しようSystem.out.println(20   +   3);System.out.println(20   -   3);System.out.println(20   *   3);System.out.println(20   ...
計算しよう 変数を使うint numA = 20;int numB = 3;int ans;ans = numA + numB;System.out.println(ans);ans = numA - numB;System.out.print...
条件分岐する もし、フラグが立っているなら   よっしゃ、このままHappy End フラグが立ってなかったら   Nice boat…@numa08:#AndroidTao1     2012/4/22
条件分岐するif("フラグが立っている"){  "よっしゃ、Happy End"}else{  "Nice boat..."}@numa08:#AndroidTao1   2012/4/22
if-else文とはif(/*ここが真のとき*/){//ここが実行される}else{//偽のときは//ここが実行される}  @numa08:#AndroidTao1   2012/4/22
if-else文とはint a = 2112 - 2012;if (a == 100) {System.out.println("差は100です");} else {System.out.println("100じゃないです");}    @n...
if-else if – else とはint a = 2112 - 2012;if (a == 100) {   System.out.println("差は100です");} else if (a == 200) {   System.ou...
booleanとは 真偽値(trueかfalse)のみを保存する変数 論理演算子による計算結果はboolean値 え?論理演算子?@numa08:#AndroidTao1         2012/4/22
論理演算子とはint a = 0, b = 0;a == b;// aとbが等しいとき、truea != b;// a≠b aとbが等しくないとき、true(a == b) && (a != b);// A&&B   AとBがともに真の時、tr...
繰り返す 同じ処理を繰り返す 同じ処理を、数値を変えて繰り返す@numa08:#AndroidTao1   2012/4/22
for文とは とりあえず、Hello Wordを5回表示してよ@numa08:#AndroidTao1         2012/4/22
for文とはfor("1から5まで数える"){  System.out.println("Hello world");}@numa08:#AndroidTao1           2012/4/22
for文とはfor (int i = 0; i < 5; i++) {  System.out.println("Hello world");}@numa08:#AndroidTao1           2012/4/22
for文とは       for (初期化式;終了条件;反復式) {          中身の処理       }1.   初期化式2.   終了条件式3.   中身4.   反復式5.   終了条件式6.   中身7.   反復8.   … ...
for文とは for (int i = 0; i < 100; i++) {   System.out.println(i); }@numa08:#AndroidTao1        2012/4/22
続きは休憩の後で!!@numa08:#AndroidTao1   2012/4/22
コーヒーブレイクpublic class Main {/** * @param args */public static void main(String[] args) throws Exception {if (java.io.PrintS...
お品書き 連続したデータを取り扱う 九九を計算してみよう 九九の表を作ってみよう メソッドを使ってみよう:九九の表プログラムをもっと見やす  く クラスを使ってみよう:九九以外の掛け算の表プログラムを作  る 実践FizzBuzz問...
連続したデータを取り扱う 関連の強い複数のデータを一括で管理する   クラスの名簿とか   月毎の収支一覧とか@numa08:#AndroidTao1    2012/4/22
みんなの単位の合計と平均!!// 2012年度1年生の取得単位数一覧!!int abe = 30;int itou = 28;int ooyama = 24;int koyama = 10;int yokoi = 2;int sum = abe...
みんなの単位の合計と平均!!// 2012年度1年生の取得単位数一覧!!int[] tani = { 30, 28, 24, 10, 2 };int sum = 0;   for (int i = 0; i < tani.length; i++...
配列の初期化方法int[] array1 = { 1, 2, 3, 4 };// サイズは4、初期値も代入する。int length = array1.length; // 配列のサイズ数を得る。今回は4int[] array2 = new i...
九九を計算してみようint[] ninenine = new int[kuku];// 配列のサイズは?int counter = 0;// 添え字カウント用変数for (int i = 0; i < 9; i++) {   for (int ...
実行結果 1,2,3,4,5,6,7,8,9,2,4,6,8,10,12,14,16,18,3,6,9,12,15,18  ,21,24,27,4,8,12,16,20,24,28,32,36,5,10,15,20,25,30,3  5,40...
ヒント:for文のネスト(入れ子)for (int i = 0; i < 9; i++) {   for (int j = 0; j < 9; j++) {     System.out.println("i=" + i + ",j=" + j...
ヒント:九九って何個?int kuku = 81;//どっちでもint kuku = 9 * 9;//いいよ!!   @numa08:#AndroidTao1    2012/4/22
答えfor (int i = 0; i < 9; i++) {   for (int j = 0; j < 9; j++) {      ninenine[counter] = (i + 1) * (j + 1);      counter++...
拡張for文を使ってみる 九九の一覧表示部分は、配列の読み込みを行うだけ 先頭から順に眺めていく@numa08:#AndroidTao1        2012/4/22
拡張for文を使ってみるfor (int nine : ninenine) {   System.out.print(nine + ",");}    @numa08:#AndroidTao1       2012/4/22
メソッドに分ける           もっと、プログラムを見やすく@numa08:#AndroidTao1          2012/4/22
メソッドとは? 一連の処理をまとめた物。 何回でも呼び出せる。   同じ様なコードが増えるのを防げる!! メソッドには名前が付けられる   何をするメソッドなのかがすぐ分かる!!   どんな処理をしているのかすぐ分かる@numa08...
メソッドに分けてみるpublic static void main(String[] args){    int kuku = 81;    int[] ninenine = calcNinenine(kuku);// 呼び出し、実行    f...
メソッドの書式アクセス修飾子      復帰型    名前(引数)private static int[] calcNinenine(int kuku) {       // メソッドの処理       return ninenine;   }...
メソッドの書式 アクセス修飾子:privateとかpublicとか。後でやろう!! 復帰型:メソッドが返すデータの型。何も返さないならvoid 名前:名前。わかりやすい名前にしよう!! 引数:メソッドに渡すデータ。 static:ma...
メソッドの練習1   public static void main(String[] args) {      // 何も返さないメソッドの練習!!      viewMessage();   }this is method        @...
メソッドの練習1 答えpublic static void main(String[] args){   // 何も返さないメソッドの練習!!   viewMessage();}private static void viewMessage()...
メソッドの練習2     public static void main(String[] args){        // 計算するメソッドの練習        int a = 10, b = 20;         int z = add(...
メソッドの練習2 答えpublic static void main(String[] args) throws Exception {   // 計算するメソッドの練習   int a = 10, b = 20;    int z = add...
クラスを作ってみよう                       プログラムをもっと便利に@numa08:#AndroidTao1              2012/4/22
クラスとは コンストラクタ フィールド メソッド Static インスタンス 継承 インターフェース Bean 抽象クラス @numa08:#AndroidTao1   2012/4/22
クラスとは データや処理をまとめた設計図 インスタンスで実体化 分からんなら、とりあえずnew@numa08:#AndroidTao1   2012/4/22
掛け算クラスを作ってみよう@numa08:#AndroidTao1   2012/4/22
九九の出力をしよう(Multi.java)public class Multi {    private final int MAX = 9;    /**     * 実際の計算をする     *     * @return 掛け算の結果  ...
九九の出力をしよう(Multi.java)    /**      * 掛け算の結果を出力する      *      * @param multiArray      *             掛け算データ      */    publi...
九九の出力をしよう(Main.java)public static void main(String[] args) {  Multi multi = new Multi();  int[] multiArray = multi.calc();...
クラスの使い方(Main.java)public static void main(String[] args) {  Multi multi = new Multi();  int[] multiArray = multi.calc();  ...
初期値を設定する(Multi.java)public class Multi { private final int MAX; public Multi(int MAX) {   this.MAX = MAX; }   @numa08:#And...
コンストラクタとはpublic Multi(int MAX) {    this.MAX = MAX;  }• インスタンス生成時に初期値、初期設定をする• 戻り値は無い• 引数を変えれば、いくつでも作れる    @numa08:#Androi...
補足 変数のスコープpublic class Multi { private final int MAX; メンバ変数。クラス内のどこからでもアクセスできる。  public Multi(int MAX) {     this.MAX = MA...
インスタンスの生成(Main.java) Multi multi = new Multi(); Multi multi = new Multi(9);@numa08:#AndroidTao1           2012/4/22
色々な掛け算をしてみよう      (Main.java)Multi m1 = new Multi(9);int[] m1Array = m1.calc();m1.view(m1Array);Multi m2 = new Multi(18);i...
変数名の重複 実は変数名は重複していてもいい 引数の型、数、並び順が異なる必要がある@numa08:#AndroidTao1    2012/4/22
結果を見やすくしよう/*** 掛け算の結果を見やすく表示する** @param multiArray*             掛け算データ* @param isFormat*             真なら、整形して表示*/public vo...
きゅーけいする?@numa08:#AndroidTao1   2012/4/22
FizzBuzzを解いてみよう!! 1から100の整数を入力する 3と5両方で割り切れるときは、“FizzBuzz”と出力 3でのみ割り切れるときは“Fizz”と出力 5でのみ割り切れるときは“Buzz”と出力@numa08:#Andr...
ヒントとか仕様とか クラスを使いましょう 新しいJavaプロジェクトでやりましょう できたら、見せ合いっこしましょう できなかったら、聞いてみましょう 出来る人を取り込みましょう(ぇ@numa08:#AndroidTao1     2...
こんなん出ますよ1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz,fizz,22,23,fizz,buzz,26,fizz,28,29,fi...
ゆっくりヒントを公開だ@numa08:#AndroidTao1   2012/4/22
ヒント1 Main.javaFizzBuzz fizzBuzz = new FizzBuzz();for (int i = 1; i <= 100; i++) {}    @numa08:#AndroidTao1       2012/4/22
ヒント2 Main.javaFizzBuzz fizzBuzz = new FizzBuzz();for (int i = 1; i <= 100; i++) {   System.out.print(fizzBuzz.fizzOrBuzz(i...
ヒント3 FizzBuzz.javapublic class FizzBuzz {   public String fizzOrBuzz(int num) {      if () {         return "fizzbuzz";   ...
答え@numa08:#AndroidTao1    2012/4/22
答え クラスを使ってない✖for (int i = 1; i <= 100; i++) {             System.out.print((i % 15 == 0) ? "FizzBuzz," : (i % 3 == 0) ? "F...
答え 再帰^^FizzBuzz.fizzBuzz(1);public static void fizzBuzz(int num) {   if (num == 101) {       return;   } else if (num % 3 ...
答え セミコロン無いね^^public void fizzorBuzz(int num) {   if (num % 3 == 0 && num % 5 == 0) {       if (System.out.printf("FizzBuzz...
真・答えpublic String fizzOrBuzz(int num) {   if (num % 3 == 0 && num % 5 == 0) {       return "fizzbuzz";   } else if (num % ...
次回予告@numa08:#AndroidTao1      2012/4/22
次回予告 Androidことはじめ ぶっちゃけ、ハローワールド!! アプリを作るよ!! @numa08:#AndroidTao1   2012/4/22
アプリを作るよ@numa08:#AndroidTao1                  2012/4/22                       画面は開発中のものです…
宿題 作ってみよう、世界のナベアツプログラム   3の倍数と3がつく数字のときだけ、AHOと出力   それ以外の数字は、そのまま出力@numa08:#AndroidTao1          2012/4/22
Upcoming SlideShare
Loading in...5
×

Android道第1回公開用

426

Published on

Android道第一回目の講義資料です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
426
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Android道第1回公開用"

  1. 1. Android道第1回numa08
  2. 2. お品書き コンピュータって何だろう? プログラムって何だろう? プログラミング言語、Javaって何だろう? Javaでプログラミングをしてみよう 休憩 九九の表を作ってみよう 九九以外の表も簡単に作ってみよう 実践!?Javaプログラミング@numa08:#AndroidTao1 2012/4/22
  3. 3. コンピュータって何だろう?@numa08:#AndroidTao1 2012/4/22
  4. 4. コンピュータとは!! 命じられた事は素早くこなす、それ以外は全くやらない 超指示待ち機械!!  命令(ソフト)が無ければ ただの箱  自分から何かをすることは 無い  命令を与えれば、その通り に高速に処理する@numa08:#AndroidTao1 2012/4/22http://ja.wikipedia.org/wiki/X68000
  5. 5. コンピュータとは!! 命じられた事は素早くこなす、それ以外は全くやらない 超指示待ち機械!!@numa08:#AndroidTao1 2012/4/22 http://ja.wikipedia.org/wiki/MSX
  6. 6. プログラムって何だろう?@numa08:#AndroidTao1 2012/4/22
  7. 7. プログラムとは!!人間でもコンピュータでも理解出来る言語で書かれた命令のこと!!命令を書くこと、プログラムすることを、プログラミングと言うプログラムが書かれたテキストファイルをソースコードと言う @numa08:#AndroidTao1 2012/4/22
  8. 8. コンピュータに命令するとき・・・ コンピュータは人語を理解出来ない!! 人間はコンピュータ語を理解出来ない!! 翻訳が必用!!@numa08:#AndroidTao1 2012/4/22
  9. 9. 翻訳のイメージ日本人 フランス人 @numa08:#AndroidTao1 2012/4/22 http://ja.wikipedia.org/wiki/%E3%83%89%E3%83%AA%E3%83%BC%E3%83%A0 %E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88 http://game.sakura-taisen.com/ds/
  10. 10. プログラムとは!? 人間の言葉はルールが曖昧 話者、使用者、時代によって変化する もっと、厳密なルールの言語が必用 だったら、新しい言語だ!!@numa08:#AndroidTao1 2012/4/22
  11. 11. プログラミングのイメージ九九の表を作りたいなー プログラミング 翻訳 @numa08:#AndroidTao1 2012/4/22
  12. 12. プログラムとは!!人間でもコンピュータでも理解出来る言語で書かれた命令のこと!!命令を書くこと、プログラムすることを、プログラミングと言うプログラムが書かれたテキストファイルをソースコードと言う @numa08:#AndroidTao1 2012/4/22
  13. 13. プログラミング言語って何だろう@numa08:#AndroidTao1 2012/4/22
  14. 14. プログラミング言語・・・? 人間でもコンピュータでも理解できる言葉 コンピュータに対しての命令を書く 実は色々と種類がある@numa08:#AndroidTao1 2012/4/22
  15. 15. 様々なプログラミング言語 C# Brain Ruby F*ck Java Basic Cobol sh@numa08:#AndroidTao1 2012/4/22
  16. 16. 様々なプログラミング言語 言語毎に得意不得意がある でも、まあ今はあんまり気にしないで 結局はマシン語になる@numa08:#AndroidTao1 2012/4/22
  17. 17. Javaとは JavaVM vs DalvikVM オブジェクト思考…  継承  カプセル化  ポリモーフィズム  ダイナミックバインディング バイトコード Servlet @numa08:#AndroidTao1 2012/4/22
  18. 18. Javaとは プログラミング言語の一つ 初心者が習得すると、今後も使える Android搭載端末では、Javaで書かれたプログラムをマシン語 に翻訳する@numa08:#AndroidTao1 2012/4/22
  19. 19. JavaとはAndroid搭載端末で動く、プログラミング言語ソースコードを見やすく、管理しやすくする工夫がある@numa08:#AndroidTao1 2012/4/22
  20. 20. まとめ@numa08:#AndroidTao1 2012/4/22
  21. 21. まとめ コンピュータとは  与えられた命令は高速にやるけど、命令されてないことは全くやら ない機械 プログラムとは  コンピュータに対して書かれた命令。人間でもコンピュータでも理 解できる言葉で書かれている。  最終的に、コンピュータ語(マシン語)に翻訳される プログラミング言語  プログラムを書くための言語  言語によって色々と特性がある  今回はJavaを使う@numa08:#AndroidTao1 2012/4/22
  22. 22. Javaプログラミングをしてみよう@numa08:#AndroidTao1 2012/4/22
  23. 23. Javaプログラミングをしてみよう Javaプロジェクトを作る 出力する 計算する 変数を使ってみる 条件分岐する 繰り返す@numa08:#AndroidTao1 2012/4/22
  24. 24. Javaプロジェクトを作る • Newをクリック • JavaProject をクリック • Project name : AndroidTao1 • Finish をクリック@numa08:#AndroidTao1 2012/4/22
  25. 25. Javaプロジェクトを作る• SRC を右クリック• New -> Package • Name: • jp.”yourname”.androidTao• パッケージを右クリック • New -> Class • Name:Main • Public static void main(String[] args) @numa08:#AndroidTao1 2012/4/22
  26. 26. 何か出力してみよう package jp.numa08.androidtao; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello World"); } }@numa08:#AndroidTao1 2012/4/22
  27. 27. 何か出力してみよう Consoleに Hello World と表示されたら成功 やった、これで君もJavaプログラマーだっ!! 上手くいかなかった人挙手で @numa08:#AndroidTao1 2012/4/22
  28. 28. 変数を使ってみよう package jp.numa08.androidtao; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int number = 4; System.out.println(number); } }@numa08:#AndroidTao1 2012/4/22
  29. 29. 変数とは データを保存する箱の様な物 保存するデータの種類に合わせて宣言する必要がある@numa08:#AndroidTao1 2012/4/22
  30. 30. 変数の宣言色々int x;//普通に宣言x = 14;//14 を代入int y,z = 12;//yとzを同時に宣言。zに12を代入x = 5;//最後に代入された値が有効int 2ab;//数字で始まる変数はだめint x;//同じ名前の変数はだめ @numa08:#AndroidTao1 2012/4/22
  31. 31. 主な変数の種類int integer;// 整数double _double;// 小数String strings;// 文字列boolean true_fale;// 真偽値@numa08:#AndroidTao1 2012/4/22
  32. 32. 計算しよう 数学っぽく計算は書くことができる!! 足し算 + 引き算 – 掛け算 * 割り算 / 余り %@numa08:#AndroidTao1 2012/4/22
  33. 33. 計算しようSystem.out.println(20 + 3);System.out.println(20 - 3);System.out.println(20 * 3);System.out.println(20 / 3);System.out.println(20 % 3);@numa08:#AndroidTao1 2012/4/22
  34. 34. 計算しよう 変数を使うint numA = 20;int numB = 3;int ans;ans = numA + numB;System.out.println(ans);ans = numA - numB;System.out.println(ans);ans = numA * numB;System.out.println(ans);ans = numA / numB;System.out.println(ans);ans = numA % numB;System.out.println(ans); @numa08:#AndroidTao1 2012/4/22
  35. 35. 条件分岐する もし、フラグが立っているなら  よっしゃ、このままHappy End フラグが立ってなかったら  Nice boat…@numa08:#AndroidTao1 2012/4/22
  36. 36. 条件分岐するif("フラグが立っている"){ "よっしゃ、Happy End"}else{ "Nice boat..."}@numa08:#AndroidTao1 2012/4/22
  37. 37. if-else文とはif(/*ここが真のとき*/){//ここが実行される}else{//偽のときは//ここが実行される} @numa08:#AndroidTao1 2012/4/22
  38. 38. if-else文とはint a = 2112 - 2012;if (a == 100) {System.out.println("差は100です");} else {System.out.println("100じゃないです");} @numa08:#AndroidTao1 2012/4/22
  39. 39. if-else if – else とはint a = 2112 - 2012;if (a == 100) { System.out.println("差は100です");} else if (a == 200) { System.out.println("差は200です");} else { System.out.println("100でも200でもないです");} @numa08:#AndroidTao1 2012/4/22
  40. 40. booleanとは 真偽値(trueかfalse)のみを保存する変数 論理演算子による計算結果はboolean値 え?論理演算子?@numa08:#AndroidTao1 2012/4/22
  41. 41. 論理演算子とはint a = 0, b = 0;a == b;// aとbが等しいとき、truea != b;// a≠b aとbが等しくないとき、true(a == b) && (a != b);// A&&B AとBがともに真の時、true(a == b) || (a != b);// A||B AかBの少なくとも一方が真のとき、 true @numa08:#AndroidTao1 2012/4/22
  42. 42. 繰り返す 同じ処理を繰り返す 同じ処理を、数値を変えて繰り返す@numa08:#AndroidTao1 2012/4/22
  43. 43. for文とは とりあえず、Hello Wordを5回表示してよ@numa08:#AndroidTao1 2012/4/22
  44. 44. for文とはfor("1から5まで数える"){ System.out.println("Hello world");}@numa08:#AndroidTao1 2012/4/22
  45. 45. for文とはfor (int i = 0; i < 5; i++) { System.out.println("Hello world");}@numa08:#AndroidTao1 2012/4/22
  46. 46. for文とは for (初期化式;終了条件;反復式) { 中身の処理 }1. 初期化式2. 終了条件式3. 中身4. 反復式5. 終了条件式6. 中身7. 反復8. … @numa08:#AndroidTao1 2012/4/22
  47. 47. for文とは for (int i = 0; i < 100; i++) { System.out.println(i); }@numa08:#AndroidTao1 2012/4/22
  48. 48. 続きは休憩の後で!!@numa08:#AndroidTao1 2012/4/22
  49. 49. コーヒーブレイクpublic class Main {/** * @param args */public static void main(String[] args) throws Exception {if (java.io.PrintStream.class.getMethod("println", String.class).invoke(System.out, "Hello Semicron less World") == null) {}}} @numa08:#AndroidTao1 2012/4/22
  50. 50. お品書き 連続したデータを取り扱う 九九を計算してみよう 九九の表を作ってみよう メソッドを使ってみよう:九九の表プログラムをもっと見やす く クラスを使ってみよう:九九以外の掛け算の表プログラムを作 る 実践FizzBuzz問題に挑戦@numa08:#AndroidTao1 2012/4/22
  51. 51. 連続したデータを取り扱う 関連の強い複数のデータを一括で管理する  クラスの名簿とか  月毎の収支一覧とか@numa08:#AndroidTao1 2012/4/22
  52. 52. みんなの単位の合計と平均!!// 2012年度1年生の取得単位数一覧!!int abe = 30;int itou = 28;int ooyama = 24;int koyama = 10;int yokoi = 2;int sum = abe + itou + ooyama + koyama + yokoi;System.out.println("みんなの単位は全部で" + sum + "単位だよ!!");int ave = sum / 5;System.out.println("みんなの単位の平均は" + ave + "単位だよ!!"); @numa08:#AndroidTao1 2012/4/22
  53. 53. みんなの単位の合計と平均!!// 2012年度1年生の取得単位数一覧!!int[] tani = { 30, 28, 24, 10, 2 };int sum = 0; for (int i = 0; i < tani.length; i++) { sum += tani[i]; // sum = sum + tani[i];と一緒 }System.out.println("みんなの単位は全部で" + sum + "単位だよ!!");System.out.println("みんなの単位の平均は" + sum / tani.length + "単位だよ!!") @numa08:#AndroidTao1 2012/4/22
  54. 54. 配列の初期化方法int[] array1 = { 1, 2, 3, 4 };// サイズは4、初期値も代入する。int length = array1.length; // 配列のサイズ数を得る。今回は4int[] array2 = new int[3];// サイズは3array2[0] = 1;// 配列の添え字は0から始まるarray2[1] = 2;array2[2] = 3;// 指定したサイズ数-1番目まで添え字があるイメージint size = 3;String[] strArray = new String[size];// int形はサイズの指定にも使える @numa08:#AndroidTao1 2012/4/22
  55. 55. 九九を計算してみようint[] ninenine = new int[kuku];// 配列のサイズは?int counter = 0;// 添え字カウント用変数for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { ninenine[counter] = ??? //ココを埋めよう counter++;// counter= couter+1 と一緒 }}for (int i = 0; i < ninenine.length; i++) { System.out.print(ninenine[i] + ",");} @numa08:#AndroidTao1 2012/4/22
  56. 56. 実行結果 1,2,3,4,5,6,7,8,9,2,4,6,8,10,12,14,16,18,3,6,9,12,15,18 ,21,24,27,4,8,12,16,20,24,28,32,36,5,10,15,20,25,30,3 5,40,45,6,12,18,24,30,36,42,48,54,7,14,21,28,35,42,49 ,56,63,8,16,24,32,40,48,56,64,72,9,18,27,36,45,54,63, 72,81, @numa08:#AndroidTao1 2012/4/22
  57. 57. ヒント:for文のネスト(入れ子)for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { System.out.println("i=" + i + ",j=" + j); }} @numa08:#AndroidTao1 2012/4/22
  58. 58. ヒント:九九って何個?int kuku = 81;//どっちでもint kuku = 9 * 9;//いいよ!! @numa08:#AndroidTao1 2012/4/22
  59. 59. 答えfor (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { ninenine[counter] = (i + 1) * (j + 1); counter++;// counter= couter+1と一緒。1増やす }} @numa08:#AndroidTao1 2012/4/22
  60. 60. 拡張for文を使ってみる 九九の一覧表示部分は、配列の読み込みを行うだけ 先頭から順に眺めていく@numa08:#AndroidTao1 2012/4/22
  61. 61. 拡張for文を使ってみるfor (int nine : ninenine) { System.out.print(nine + ",");} @numa08:#AndroidTao1 2012/4/22
  62. 62. メソッドに分ける もっと、プログラムを見やすく@numa08:#AndroidTao1 2012/4/22
  63. 63. メソッドとは? 一連の処理をまとめた物。 何回でも呼び出せる。  同じ様なコードが増えるのを防げる!! メソッドには名前が付けられる  何をするメソッドなのかがすぐ分かる!!  どんな処理をしているのかすぐ分かる@numa08:#AndroidTao1 2012/4/22
  64. 64. メソッドに分けてみるpublic static void main(String[] args){ int kuku = 81; int[] ninenine = calcNinenine(kuku);// 呼び出し、実行 for (int nine : ninenine) { System.out.print(nine + ","); }}private static int[] calcNinenine(int kuku) { int[] ninenine = new int[kuku];// 配列のサイズは? int counter = 0;// 添え字カウント用変数 for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { ninenine[counter] = (i + 1) * (j + 1); counter++;// counter= couter+1 と一緒 } } return ninenine;} @numa08:#AndroidTao1 2012/4/22
  65. 65. メソッドの書式アクセス修飾子 復帰型 名前(引数)private static int[] calcNinenine(int kuku) { // メソッドの処理 return ninenine; } @numa08:#AndroidTao1 2012/4/22
  66. 66. メソッドの書式 アクセス修飾子:privateとかpublicとか。後でやろう!! 復帰型:メソッドが返すデータの型。何も返さないならvoid 名前:名前。わかりやすい名前にしよう!! 引数:メソッドに渡すデータ。 static:mainメソッドを持つクラスでは絶対に必用!!@numa08:#AndroidTao1 2012/4/22
  67. 67. メソッドの練習1 public static void main(String[] args) { // 何も返さないメソッドの練習!! viewMessage(); }this is method @numa08:#AndroidTao1 2012/4/22
  68. 68. メソッドの練習1 答えpublic static void main(String[] args){ // 何も返さないメソッドの練習!! viewMessage();}private static void viewMessage() { System.out.println("this is method");} @numa08:#AndroidTao1 2012/4/22
  69. 69. メソッドの練習2 public static void main(String[] args){ // 計算するメソッドの練習 int a = 10, b = 20; int z = add(a, b); System.out.println(z); int z2 = add(15, 24); System.out.println(z2); }3039 @numa08:#AndroidTao1 2012/4/22
  70. 70. メソッドの練習2 答えpublic static void main(String[] args) throws Exception { // 計算するメソッドの練習 int a = 10, b = 20; int z = add(a, b); System.out.println(z); int z2 = add(15, 24); System.out.println(z2);}private static int add(int a, int b) { int z = a + b; return z;} @numa08:#AndroidTao1 2012/4/22
  71. 71. クラスを作ってみよう プログラムをもっと便利に@numa08:#AndroidTao1 2012/4/22
  72. 72. クラスとは コンストラクタ フィールド メソッド Static インスタンス 継承 インターフェース Bean 抽象クラス @numa08:#AndroidTao1 2012/4/22
  73. 73. クラスとは データや処理をまとめた設計図 インスタンスで実体化 分からんなら、とりあえずnew@numa08:#AndroidTao1 2012/4/22
  74. 74. 掛け算クラスを作ってみよう@numa08:#AndroidTao1 2012/4/22
  75. 75. 九九の出力をしよう(Multi.java)public class Multi { private final int MAX = 9; /** * 実際の計算をする * * @return 掛け算の結果 */ public int[] calc() { int[] multiArray = new int[MAX * MAX]; int counter = 0; for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX; j++) { multiArray[counter] = (i + 1) * (j + 1); counter++; } } return multiArray; } @numa08:#AndroidTao1 2012/4/22
  76. 76. 九九の出力をしよう(Multi.java) /** * 掛け算の結果を出力する * * @param multiArray * 掛け算データ */ public void view(int[] multiArray) { for (int multi : multiArray) { System.out.print(multi + ","); } System.out.println(); }} @numa08:#AndroidTao1 2012/4/22
  77. 77. 九九の出力をしよう(Main.java)public static void main(String[] args) { Multi multi = new Multi(); int[] multiArray = multi.calc(); multi.view(multiArray);} @numa08:#AndroidTao1 2012/4/22
  78. 78. クラスの使い方(Main.java)public static void main(String[] args) { Multi multi = new Multi(); int[] multiArray = multi.calc(); multi.view(multiArray);} メソッドの呼び出し。インスタンスの生成。クラス内の処理、データを呼び出せるようにする。 @numa08:#AndroidTao1 2012/4/22
  79. 79. 初期値を設定する(Multi.java)public class Multi { private final int MAX; public Multi(int MAX) { this.MAX = MAX; } @numa08:#AndroidTao1 2012/4/22
  80. 80. コンストラクタとはpublic Multi(int MAX) { this.MAX = MAX; }• インスタンス生成時に初期値、初期設定をする• 戻り値は無い• 引数を変えれば、いくつでも作れる @numa08:#AndroidTao1 2012/4/22
  81. 81. 補足 変数のスコープpublic class Multi { private final int MAX; メンバ変数。クラス内のどこからでもアクセスできる。 public Multi(int MAX) { this.MAX = MAX; ローカル変数。 } は、処理中のクラスを指す。 メソッド内でならアクセスできる。これは、メンバ変数。this @numa08:#AndroidTao1 2012/4/22
  82. 82. インスタンスの生成(Main.java) Multi multi = new Multi(); Multi multi = new Multi(9);@numa08:#AndroidTao1 2012/4/22
  83. 83. 色々な掛け算をしてみよう (Main.java)Multi m1 = new Multi(9);int[] m1Array = m1.calc();m1.view(m1Array);Multi m2 = new Multi(18);int[] m2Array = m2.calc();m2.view(m2Array);Multi m3 = new Multi(3);int[] m3Array = m3.calc();m3.view(m3Array); @numa08:#AndroidTao1 2012/4/22
  84. 84. 変数名の重複 実は変数名は重複していてもいい 引数の型、数、並び順が異なる必要がある@numa08:#AndroidTao1 2012/4/22
  85. 85. 結果を見やすくしよう/*** 掛け算の結果を見やすく表示する** @param multiArray* 掛け算データ* @param isFormat* 真なら、整形して表示*/public void view(int[] multiArray, boolean isFormat) { if (isFormat) { for (int i = 0; i < multiArray.length; i++) { System.out.printf("%-4d", multiArray[i]); if (i > 0 && (i + 1) % MAX == 0) { System.out.println(); } } } else { this.view(multiArray); }} @numa08:#AndroidTao1 2012/4/22
  86. 86. きゅーけいする?@numa08:#AndroidTao1 2012/4/22
  87. 87. FizzBuzzを解いてみよう!! 1から100の整数を入力する 3と5両方で割り切れるときは、“FizzBuzz”と出力 3でのみ割り切れるときは“Fizz”と出力 5でのみ割り切れるときは“Buzz”と出力@numa08:#AndroidTao1 2012/4/22
  88. 88. ヒントとか仕様とか クラスを使いましょう 新しいJavaプロジェクトでやりましょう できたら、見せ合いっこしましょう できなかったら、聞いてみましょう 出来る人を取り込みましょう(ぇ@numa08:#AndroidTao1 2012/4/22
  89. 89. こんなん出ますよ1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz,fizz,22,23,fizz,buzz,26,fizz,28,29,fizzbuzz,31,32,fizz,34,buzz,fizz,37,38,fizz,buzz,41,fizz,43,44,fizzbuzz,46,47,fizz,49,buzz,fizz,52,53,fizz,buzz,56,fizz,58,59,fizzbuzz,61,62,fizz,64,buzz,fizz,67,68,fizz,buzz,71,fizz,73,74,fizzbuzz,76,77,fizz,79,buzz,fizz,82,83,fizz,buzz,86,fizz,88,89,fizzbuzz,91,92,fizz,94,buzz,fizz,97,98,fizz,buzz, @numa08:#AndroidTao1 2012/4/22
  90. 90. ゆっくりヒントを公開だ@numa08:#AndroidTao1 2012/4/22
  91. 91. ヒント1 Main.javaFizzBuzz fizzBuzz = new FizzBuzz();for (int i = 1; i <= 100; i++) {} @numa08:#AndroidTao1 2012/4/22
  92. 92. ヒント2 Main.javaFizzBuzz fizzBuzz = new FizzBuzz();for (int i = 1; i <= 100; i++) { System.out.print(fizzBuzz.fizzOrBuzz(i) + ",");} @numa08:#AndroidTao1 2012/4/22
  93. 93. ヒント3 FizzBuzz.javapublic class FizzBuzz { public String fizzOrBuzz(int num) { if () { return "fizzbuzz"; } else if () { return "fizz"; } else if () { return "buzz"; } return num + ""; }} @numa08:#AndroidTao1 2012/4/22
  94. 94. 答え@numa08:#AndroidTao1 2012/4/22
  95. 95. 答え クラスを使ってない✖for (int i = 1; i <= 100; i++) { System.out.print((i % 15 == 0) ? "FizzBuzz," : (i % 3 == 0) ? "Fizz,":(i % 5 == 0) ? "Buzz," : i + ",");} @numa08:#AndroidTao1 2012/4/22
  96. 96. 答え 再帰^^FizzBuzz.fizzBuzz(1);public static void fizzBuzz(int num) { if (num == 101) { return; } else if (num % 3 == 0 && num % 5 == 0) { System.out.print("FizzBuzz,"); } else if (num % 3 == 0) { System.out.print("Fizz,"); } else if (num % 5 == 0) { System.out.print("Buzz,"); } else { System.out.print(num + ","); } fizzBuzz(++num);} @numa08:#AndroidTao1 2012/4/22
  97. 97. 答え セミコロン無いね^^public void fizzorBuzz(int num) { if (num % 3 == 0 && num % 5 == 0) { if (System.out.printf("FizzBuzz,") == null) { } } else if (num % 3 == 0) { if (System.out.printf("Fizz,") == null) { } } else if (num % 5 == 0) { if (System.out.printf("Buzz,") == null) { } } else { if (System.out.printf(num + ",") == null) { } }} @numa08:#AndroidTao1 2012/4/22
  98. 98. 真・答えpublic String fizzOrBuzz(int num) { if (num % 3 == 0 && num % 5 == 0) { return "fizzbuzz"; } else if (num % 3 == 0) { return "fizz"; } else if (num % 5 == 0) { return "buzz"; } return num + "";} @numa08:#AndroidTao1 2012/4/22
  99. 99. 次回予告@numa08:#AndroidTao1 2012/4/22
  100. 100. 次回予告 Androidことはじめ ぶっちゃけ、ハローワールド!! アプリを作るよ!! @numa08:#AndroidTao1 2012/4/22
  101. 101. アプリを作るよ@numa08:#AndroidTao1 2012/4/22 画面は開発中のものです…
  102. 102. 宿題 作ってみよう、世界のナベアツプログラム  3の倍数と3がつく数字のときだけ、AHOと出力  それ以外の数字は、そのまま出力@numa08:#AndroidTao1 2012/4/22
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×