第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という変数を使い、演算を行う(ここでは足し算)
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(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");
}
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が表示される
アルゴリズム、データ構造、並び替えなどの予定