Instantly share code, notes, and snippets.

# sugumura/00_note.md

Created September 21, 2016 12:05
Show Gist options
• Save sugumura/f578f14d7acf3545e8e4e01afc5b010f to your computer and use it in GitHub Desktop.

# 前回の復習

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 + "]");
}
``````

## 配列

``````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]);
}
``````

## 関数

``````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);
}

``````

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

return res;
}

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);
``````

``````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が表示される
``````

## 次回

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