AKDB Java Stady Meeting vol.2

34
第二回 アキディベJava勉強会 大仏 2014/11/23

Transcript of AKDB Java Stady Meeting vol.2

第二回 アキディベJava勉強会

大仏2014/11/23

Agenda1. 自己紹介 2. 写真撮影 3. 趣旨説明 4. 3章~4章 5. 次回日程・担当者決め

自己紹介タイム!

普段やってること

趣味・好きなこと

名前(HN可) → 名前リレー

24時間以内にあった良いこと

趣旨説明

アキディベとは?

• LT会、討論会、読書会、ネット配信等を実施 • 運営メンバー: 1. ちゃーりー (経済・化学) 2. 高橋佑太  (政治・経済・法学) 3. 大仏  (生物学・IT・CG)

大目的• 討論番組・討論団体・・・政治・社会問題がメイン  → 理工系分野があまりない

大目的• 理工系な人々が気軽に集まる場所を作る

IT業界: 1. エンジニアが多い 2. バックグラウンドが多様(他分野出身、文系SEなど)

→ 潜在能力高・他分野との親和性高

2010年国勢調査

IT技術者:約80万人(全体の約4割) → エンジニアの最大派閥

実施計画• 第1期:Java基礎 課題図書:サクサクわかるJava入門

参加者が各章担当・プレゼン(今回は全て大仏)

終了予定:2015年6月

• 第2期:Java応用  Java or Android or デザインパターン or アルゴリズム

第3章• 構造化定理

• 順次 • 分岐 • 繰り返し

↑の3つの処理でどんなPGも作成できる

エドガー・ダイクストラ

第3章• 構造化定理

エドガー・ダイクストラ

• 順次 • 分岐 • 繰り返し

↑の3つの処理でどんなPGも作成できる

※goto文はjavaにはない

goto文はいらん

第3章• 条件式とブロック

if (x == 1){ int hoge; hoge = 1; System.out.print(hoge); }

条件式(trueならブロック内実行)

ブロック

変数はブロック内でのみ有効

第3章• if文を使ってみる• int型の変数に値を格納し、その値が偶数であれば”偶数”、そうでなければ”奇数”と出力する

第3章• 実装例

public static void main(String args[]){int i = 1;if(i%2 == 0){

System.out.println("偶数");}else{

System.out.println("奇数");}

}

第3章• 分岐構文 - if - else if - elseif (条件式){ ブロック }else if(条件式){ ブロック } else{ ブロック }

第3章• 分岐構文 - switchswitch (条件値){ case 値1: 処理1 break; default: 処理X }

ブロックを抜ける

第3章• switch文を使ってみる• int型の変数に値を格納し、その値が

1であれば”不満”

2であれば”普通”

3であれば”満足”

いずれでもなければ”その他”と出力する

第3章• 実装例public static void main(String args[]){

int i = 1;switch(i){case 1:

System.out.println("不満");break;

case 2:System.out.println("普通");break;

case 3:System.out.println("満足");break;

default:System.out.println("その他");

} }

第3章• 繰り返し構文 - whilewhile (条件式){ ブロック }• 繰り返し構文 - do whiledo{ ブロック } while(条件式)

第3章• while文を使ってみる• 1から100までの整数を表示

第3章• 実装例

public static void main(String args[]){int i = 1;while(i <= 100){

System.out.println(i);i++;

} }

第3章• 繰り返し構文 - forfor (int i=0; i<10; i++){

}

初期化処理 繰返し条件 繰返し処理

第3章• for文を使ってみる• 1から100までの整数を表示

第3章• 実装例

public static void main(String args[]){for(int i=1;i<= 100;i++){

System.out.println(i);}

}

第3章• breakとcontinue・break文:ブロック自体を抜ける ・continue文:処理を中断し、次のループに進む

第3章• FizzBuzz問題1から100までの数字で、 ・3で割り切れる場合はFizz ・5で割り切れる場合はBuzz ・両方で割り切れる場合はFizzBuzz ・いずれでもない場合はその数字 を出力する

第3章• FizzBuzz問題 - 実装例

public static void main(String args[]){ for(int i=1;i<=100;i++) {

if(i%3==0&&i%5==0) { System.out.println("FizzBuzz"); } else if(i%3==0) { System.out.println("Fizz"); } else if(i%5==0) { System.out.println("Buzz"); } else { System.out.println(i); }

}}

第4章• 配列とは?複数データを並び順で格納できる

[0] [1] [2] [3]

要素

添字(index)

第4章• 配列とは? - メモリ上の扱い配列分の領域を確保し、先頭のアドレスを配列変数に格納

[0] [1] [2] [3]配列変数

8832

8832

8836 8840 8844

※変数の実体:確保されたメモリの領域

第4章• 配列の作成int[] x = new int[5];

要素は5個 添字は0~4

• 拡張for文for(要素の型 変数名:配列変数名){ }

第4章• 配列を使ってみる• 練習4 - 2を解く

第4章• nullnull:何もない → どこも参照しない ※ドイツ語で0.ドイツ人はどうしているのだろう…

nullなのに参照しようとした場合 → NullPointerException

第4章• 連想配列(ハッシュ、マップ)

[日]

添字に文字列を指定できる:便利!

[米] [英] [独]

東京 ワシントン

ロンドン

ベルリン

Map<添字のデータ型、要素のデータ型> マップ名 = new HashMap<添字のデータ型、要素のデータ型>();

第4章• 連想配列(ハッシュ、マップ) - 利用例import java.util.*;

public class Maptest {public static void main(String args[]){

Map<String,String> map = new HashMap<String,String>(); map.put("日本","東京"); map.put("アメリカ","ワシントン"); map.put("イギリス","ロンドン"); map.put("ドイツ","ベルリン"); System.out.println(map.get("日本")); System.out.println(map.get("アメリカ")); System.out.println(map.get("イギリス")); System.out.println(map.get("ドイツ"));

}}

次回日程&担当決め• 次回日程 1/18 15:00-18:00@HUBCafeTokyo