レンタルサーバーを借りまして、
ただいま、自作HPを作成中です。
覚えたてのHTMLを使ってみるも、悪戦苦闘しております。
スタイルシートについても調べ、作成してみたのですが・・
やっぱりよく分からないので、HTMLに直に書き込む始末です;
入力したデータを保持したり、掲示板を作成するのは、
HTMLやjavascriptではできないのかな?
検索すると、perlという単語が出てきます。
perlは大学時代に聞いた事があります。
ある先輩が推していました、プログラム言語の一つでしたね。確か。
まぁ、自作HPについては、気長にチマチマやっていくつもりです。
今日は、プログラムについての話です。
プログラムを勉強中の方に向けた話となっております。
プログラムによって記述は違うと思いますが、
if文とは、以下の感じの内容です。
if ( 条件 ) {
処理;
}
↑<if文というのは>
( )の条件の内容が真(true:正しい)ならば、{ } の処理を行います。
( )の条件の内容が偽(false:正しくない)ならば、{ }はとばします。
記述例を少し挙げます。
例1)
int num = 1;
if ( num >= 0 ) {
return num;
} else if ( num < 0 )
return -num;
}
↑<絶対値を返す>
numが正数ならば、そのまま返し、
numが負数ならば、マイナス(-1)をかけて返します。
例2)
int flag = 2;
if ( flag == 1 ) {
処理1;
} else if ( flag == 2 ) {
処理2;
} else {
return error;
}
↑<フラグによる条件分岐>
flagが1ならば、処理1を行い、
flagが2ならば、処理2を行います。
それ以外ならば、エラーを返します。
ここからが本題です。
例1に関しては、以下の記述でも書くことができます
例1’)
if ( num ) {
return num;
} else {
return -num;
}
処理内容は同じです。例2に関してですと、、
例2’)
if ( flag != 1 && flag != 2 ) {
return error;
}
if ( flag == 1 ) {
処理1;
} else if ( flag == 2 ) {
処理2;
}
こうしても、同じ処理にはなります。
では質問。
例1と例1’の違いは何でしょうか?
例2と例2’の違いは何でしょうか?
これだけで来週まで引っ張るのも申し訳ないので、
話を続けます。
例1) 例1’)
if ( num >= 0 ) { if ( num ) {
return num; return num;
} else if ( num < 0 ) { } else {
return -num; return -num;
} }
敢えて述べていませんでしたが、例1’の( )条件について、
プログラムを知っている人ならば、内容を理解することはできます。
では、numの型は分かりますか?
return -num; だから予想できますかね。
では、例1を見てみましょう。
numが数値型なのが分かりますよね。
else if の( )条件は、書かなくても例1’のように処理はするんですよ。
でも、敢えて書くことによって、処理が分かりやすくなっているように思いませんか?
では、例2にいきます。
例2) 例2’)
if ( flag == 1 ) { if ( flag != 1 && flag != 2 ) {
処理1; return error;
} else if ( flag == 2 ) { }
処理2; if ( flag == 1 ) {
} else { 処理1;
return error; } else if ( flag == 2 ) {
} 処理2;
}
ここで注目なのが、flag が 1 でも 2 でもないとき、
エラーとして、処理を終えているんですよね。
例2では、単純に flag の内容での条件分岐。
例2’では、まずエラー処理をして、
それ以降では、flag は 1 か 2 のどちらかであるという前提での
処理となっています。
ただのif文、されどif文。
自分で記述し、自分だけが使うのであれば、
どの記述でもいいでしょう。
ですが、未来の自分がプログラムを振り返ったとき、
どうなっていると内容が分かりやすいかな?と、考えてみてください。
それを意識するだけで、コメント文が書けるようになるかと思います。
プログラムを丁寧に書くことはいいことですが、
記述が多くなれば、その分だけ処理も時間がかかります。
このような関係を「トレードオフ」といいますが、
どちらも完全に満足させることは非常に難しいです。
例1も例2も、どちらがいいかなんて、
場合によってマチマチなんですよ。
その時々によって、どのように書けばよいのか、
プログラムの難しいところであり、面白いところでもありますね。
あ、もちろん、規約が第一優先ですよ。