Skip to content

Instantly share code, notes, and snippets.

@sugumura
Created September 21, 2016 12:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sugumura/f578f14d7acf3545e8e4e01afc5b010f to your computer and use it in GitHub Desktop.
Save sugumura/f578f14d7acf3545e8e4e01afc5b010f to your computer and use it in GitHub Desktop.
第2回javascript勉強会@未来会議室(プログラミング超入門) http://otona.connpass.com/event/39886/

2016年9月21日

第2回javascript勉強会@未来会議室(プログラミング超入門) http://otona.connpass.com/event/39886/

前回の復習

https://repl.it/languages/javascript

var val = 3;

console.log(val);

var valは変数。valという変数に3という値を代入する。 console.logでコンソールに表示する

var val = 3
var val2 = 4;

var res = val + val2;

console.log(res);

valとval2という変数を使い、演算を行う(ここでは足し算)

if文

var val = 3
var val2 = 4;

var res = val + val2;

if(res > 10) { // 10より大きいときに真
	console.log("res > 10");


if(res < 10) { // 10より小さいときに真
	console.log("res > 10");
}

if-else文

if(res < 10) {
	console.log("statement is true");
} else {	// res < 10でない場合に実行する
	console.log("statement is false");
}

`

else ifを重ねることで段階的な条件分が実行できる

if(res < 5) {
	console.log("statement is true");
} else if (res < 8) {
	console.log("statement is false but true");
} else {	// res < 10でない場合に実行する
	console.log("statement is false");
}

while文

var res = 7;
for (var i=0; i < res; i++) {
	console.log("hello" + "[i" + i + "]");
}

配列

変数は箱
配列は箱がつらなったもの
配列は英語でarray 配列はつらなった箱に数字を割り振る
数字は0から始まる(0,1,2,3,4,...)
数字を添字(そえじ)と呼ぶ

var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';

console.log(ar);
console.log(ar[2]);

配列の走査

var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';

for (var i = 0; i < 5; i++) {
	console.log(ar[i]);
}

逆順に配列内容を表示する

var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';

// 方法1
for (var i = 0; i < 5; i++) {
	console.log(ar[4 - i]);
}

// 方法2
for (var i = 4; i >= 0; i--) {
	console.log(ar[i]);
}

関数

先程の配列を逆順に表示する、という処理を複数回利用する。
変数arの要素が増えた場合は逆順のコードを全て書き換える必要がある。
関数を使うことで、繰り返し使える処理を作成できる。

function helloWorld() { // {}のひとまとめをブロックと呼ぶ
	console.log('Hello World!');
}

helloWorld();
helloWorld();
helloWorld();

関数は処理に名前をつけて、再利用ができる

関数といえば数学

x = 2y
1 = 2
2 = 4
3 = 6
4 = 8

処理の繰り返し

関数を使う(呼び出す)

var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';


// 関数printArrayを定義する
function printArray() {
	for (var i =0; i < 5; i++) {
		console.log(ar[4-i]);
	}
}

// printArray関数を呼び出す
printArray();

引数

var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';

// 引数(引数)のある関数
function printArray(str) {
	console.log(str);
	
	for (var i =0; i < 5; i++) {
		console.log(ar[4-i]);
	}
}

printArray("hello");
printArray("こんにちは");
var ar = [];

ar[0] = 'A';
ar[1] = 'B';
ar[2] = 'C';
ar[3] = 'D';
ar[4] = 'E';

// 引数(引数)のある関数
function printArray(len) {
	for (var i =0; i < len; i++) {
		console.log(ar[4-i]);
	}
}

printArray(3);
console.log('----');
printArray(5);

javascriptでは配列の長さを取得できる

var array = ['a', 'b', 'c'];
console.log(array.length); //=> 3
// 配列
var ar = ['A', 'B', 'C', 'D', 'E', 'F'];
var ar2 = ['Z', 'Y', 'X', 'W', 'V'];

// 引数(引数)のある関数
function printArray(array, len) {
	for (var i =0; i < len; i++) {
		console.log(array[array.length - 1 - i]);
	}
	console.log('----');
}

printArray(ar, 3);
printArray(ar2, 5);

function add (a, b) {
	var res = a + b;
	console.log(res);
}


add(3,4);
add(100,300);
add(40, -34);

add関数の計算結果を使いたい場合はreturnを仕様する

function add (a, b) {
	var res = a + b;
	console.log(res);
	
	return res;
}


var r1 = add(3, 4);
var r2 = add(100, 300);
var r3 = add(40, -34);
var r4 = add(r1, r2);

console.log("-----");
console.log(r1);
console.log(r4);

関数は処理をまとめる
関数は結果を返せる 返す値を戻り値(もどりち)と呼ぶ

プログラムは具体的な動作を想像して書く

  • 人に計算をお願いする
  • 計算データを用意する
  • 計算を依頼する
  • 計算結果を聞く

## アルゴリズムとデータ構造

英単語を覚えても英語は話せない
英語の文法、言い回しなどの学習が必要。

問題を解くための手段 -> アルゴリズム

配列の中にある数字をすべて足して、合計を求める

ある特定の手順で答えを導き出せるもの

// アルゴリズム

var ar1 = [2,4,6,8,10];

var res = ar1[0] + ar1[1] + ar1[2] + ar1[3] + ar1[4];

console.log(res);

上記のプログラムではar1でのみ成立する

配列の要素を1個ずつ取り出して、0に足していく

var ar1 = [2,4,6,8,10,12,13,14];
var res = 0;

for (var i = 0; i < ar1.length; i++) {
	res = res + ar1[i];
}

console.log(res);

ar1の内容を変えても正常に合計を計算できる

関数化

var ar1 = [2,4,6,8,10,12,13,14];

function sum(ar) {
	var res = 0;
	
	for (var i = 0; i < ar.length; i++) {
		res = res + ar[i];
	}

	return res;
}
console.log(sum(ar1));

課題

var a = 3;
var b = 4;

// aとbを入れ替えるプログラム
// 変数の値のswap

console.log("a=" + a);	// a=4が表示される
console.log("b=" + b);	// b=3が表示される

課題回答

var a = 3;
var b = 4;

// aとbを入れ替えるプログラム
// 変数の値のswap
var c = a;
a = b;
b = c;

console.log("a=" + a);    // a=4が表示される
console.log("b=" + b);    // b=3が表示される

次回

アルゴリズム、データ構造、並び替えなどの予定

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment