基礎編(条件分岐、繰り返し、関数)
例
if( 条件 ){
やりたい処理
}
var hp = 10;
if( hp < 5 ){
console.log("やられるー");
}
falseなのでなにも出力されない
var hp = 3;
if( hp < 5 ){
console.log("やられるー");
}
trueなので「やられるー」出力される
()や{}について
var hp = 3;
if( hp < 5 ){
console.log("やられるー");
}
console.log("残りHPは"+hp+"です");
この場合だと、
{}(なみかっこ)の中には「やられるー」だけなので、「残りHPは〜」はの部分は、if文とは関係なく、かならず出力されます。
()→ 丸かっこ・かっこ・パーレン ※個人的には「かっこ派」
{}→ 波かっこ・中かっこ・ブレイス ※個人的には「波かっこ派」
[]→ 角かっこ・大カッコ・ブラケット ※個人的には「角かっこ派」
<> → 山かっこ・ アングルブラケット ※個人的には「山かっこ派」
プログラミングでは、 if文で使われているような()や{}が非常に良く出てきます。
読み方も人それぞれで、よくつかわれる言い方は下の感じです。
if( 条件 ){
やりたい処理1
やりたい処理2
やりたい処理3
}
if( 条件① ){
やりたい処理1
if( 条件② ){
やりたい処理2
}
}
var hp = 0;
if( hp < 5 ){
console.log("やられるー");
if( hp < 1 ){
console.log(" ( ́;ω;`) ");
}
}
例
{}に注目!
このような形を「入れ子」「ネスト」などとも言います。
この場合、変数hpは0なので、外側のifも、内側のifも両方 trueなので「やられるー ( ́ ́;ω;`) 」と表示されます。
if( 条件 ){
条件がtrue(トゥルー)の時やりたい処理
else{
条件がfalse(フォレス)の時にやりたい時
}
else(エルス)の後の{}の中に、書いた処理は、条件式が falseの場合のみ動きます。
( trueの時はムシされます)
var tensuu = 70;
if(tensuu > 80){
console.log("合格です");
}else{
console.log("残念でした");
if( 条件① ){
条件①がtrueの時に、やりたい処理
}else if( 条件② ){
条件①がfalseで、条件②がtrueの時に、やりたい処理
}else{
条件①がfalseで、条件②もfalseの時に、やりたい処理
}
var tensuu = 70;
if(tensuu > 80){
console.log("合格です");
}else if(tensuu > 60){
console.log("もうちょい");
}else{
console.log("残念でした");
else ifの後の{}の中に、条件①が falseだった場合の、次の条件(条件②)を記述します。
var hp = 0;
if( hp < 5 ){
console.log("やられるー");
if( hp < 1 ){
console.log(" ( ́;ω;`) ");
}
※else ifの始まりの{ が足りないため、エラーになる。
var tensuu = 70;
if(tensuu > 80){
console.log("合格です");
}else if(tensuu > 60)
console.log("もうちょい");
}else{
console.log("残念でした");
※終わりの }が足りないため、エラーになる。
例
for(var i=0(数える用の変数作る) ; i<3(処理をする条件) ; i++(数える変数を1足す){
※ここに繰り返したい処理を書く。
}
for(var i=0 ; i<3 ; i++){
console.log("ほ");
}
※ほほほ と表示される。
例
①の条件判定が trueの間だけ、処理されて、 falseになったら繰り返しが終わります。
変数iのことを「カウンター変数」と呼びます。
for(var i=0 ; i<繰り返したい回数 ; i++)
for(var i=93 ; i>90 ; i--){
console.log("ほ");
}
//これでも"ほほほ"と表示される。
つまり【くりかえす回数以外】は変えずに、上のかたちで決めておき、くりかえしたい回数のところだけをかえれば[◯◯回くりかえす]というプログラムが作れます。
たとえば…
中身:色々な命令
(まとめておく)
function log(){
console.log(100);
}
※100という数字を出力させるためだけの関数
function 関数名(){
処理
}
例
function log(){
console.log(100);
console.log(200);
console.log(300);
}
log();
※↑100,200,300が表示される。
function 関数名(){
処理;
}
※↑定義(ていぎ)はここまで。
関数名();
※↑これが関数の呼び出し。関数名()で呼び出せる。
例
function aisatu(name){
console.log('ハロー,' + name);
}
aisatu('トム');
※↑「ハロートム」と出力される。
function 関数名( 引数(ひきすう) ){
処理(引数が含まれる);
}
関数名( 引数に渡す値 );
※↑関数の呼び出しの時に()の中に、値(ね)をいれて呼び出す。
例
function sikaku(x, y){
var menseki = x * y;
console.log(menseki);
}
function sikaku(x, y){
var menseki = x * y;
console.log(menseki);
}
sikaku(10,20);
※↑200と出力される。
①玄関まで行く。
②【ikisaki】引数まで行く。※自販機じゃない可能性もあるため。
③お金【nedan】引数円を入れる。※お金が変わるかもしれないため。
④【kaumono】引数のボタンを押す。※コーラ以外のものを買ってきてもらうかもしれないため。
⑤【kaumono】引数を取る。※↑の④と同じ理由
⑥家に帰ってくる。
大事なのは【なにを引数(ひきすう)にすれば良いのか?】というところです。
これを自分で判断(はんだん)できれば、関数の作り方はマスターしたも当然です。ちゃんと理解しましょう。
基本的(きほんてき)に引数にするのは【変更する可能性(かのうせい)のある値】です。
先ほどの【買ってきてもらう関数】でたとえると、下の感じです、
var a = 100;←関数の外で作った変数は…
function sukopu(){
console.log(a);←関数の中で使える!
}
sukopu();
※↑ちゃんと100と表示される。
function sukopu(){
var a = 0;←関数の中で作った変数は…
}
console.log(a);
※↑外からは使えない!エラーになる。
◯
✕
✕
var a = 0;←ここで変数aを作った。スコープの外のなので、グローバル変数のaが出来た。
function sukopu(){
var a = 10;←また”宣言”(せんげん)したので、今度はローカル変数のaが出来た。
console.log(a);
}
sukopu(); ※←ここでは、ローカル変数のaが出力されるため10と出力される。
console.log(a); ※←ここでは、グローバル変数のaが出力されるため0と出力される。
var a = 0;←ここで変数aを作った。スコープの外のなので、グローバル変数のaが出来た。
function sukopu(){
a = 10;←ここでは、宣言していないので、グローバ変数のaに10が代入されるだけ
console.log(a);
}
sukopu(); ←この関数を使うことで、グローバ変数のaに10代入されるので、10と出力される。
console.log(a);←ここでもすでに、グローバ変数aは10になっているので、10と出力される。