2008/06/22 プログラムを整える : Unknown式C言語入門
今回はプログラムを綺麗に整える事についてです。
プログラムを動かすためには、見た目が綺麗かどうかというのは関係ありません。
しかし、プログラムを学び身に着けていく上で、ソースの整形は非常に重要です。
自分でエラーや不都合が無いかを後になって調べたり、
プログラムを他人に見せたりする機会が出てくるはずです。
その時にプログラムの構造を理解しやすい形に整えておけば、
非常に効率よく作業を進める事ができます。
では、実際に形を整える方法を見ていくことにします。
-- ◇ プログラムを整える の続き --
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("aの値を入力してください。a:");
scanf("%d",&a);
printf("bの値を入力してください。b:");
scanf("%d",&b);
c=a+b;
printf("a+b=%d\n",c);
return 0;
}
これは前回作ったプログラムです。
もちろんこれは整えた状態です。
毎回この形で提示しているので、整っていないプログラムが想像できないかもしれません。
そこであえて形を崩してみることにします。
#include <stdio.h>
int main(void)
{ int a,b,c; printf("aの値を入力してください。a:");
scanf(" %d " , &a ) ; printf
("bの値を入力してください。b:");
scanf("%d",&b);c=a+b;printf("a+b=%d\n",c);return 0; }
意図的にぐちゃぐちゃにしてみましたが、これでもプログラムとしては正しいです。
(HTMLの関係上、全角スペースを入れています。半角に直すことで正常に動きます。)
C言語の場合、基本的に半角スペースや改行は無視されますので
このような事をしても大丈夫なわけです。
(無視されない部分も存在しますが、割愛。)
だからといって個人個人が自由な書きかたをしていたら他人のソースを読むのも大変です。
そこで一定のルールを導入して、効率よく書くことにします。
このルールは個人によって多少異なりますが、基本は共通です。
1 一行一文で書く。
2 行の先頭は揃えて書く。
3 中括弧の中ではインテンド(字下げ)を行う。
4 長いプログラムには適切なコメントを入れる。
だいたいこんな感じです。
それぞれを詳しく見ていきます。
1 一行一文で書く。
1行ごとに1つの意味を持つ文を書いていきます。
#include ~やint main(void)がそれぞれ一文。
それから、セミコロン(;)を区切りとして一文ずつに分けて、改行を入れていきます。
今まで通り書いていけば問題ないです。
2 行の先頭は揃えて書く。
改行を入れた文同士を真っ直ぐ縦にに並べます。
これもいままで通りです。
3 中括弧の中ではインテンド(字下げ)を行う。
提示してきたサンプルプログラムに奇妙な空きがあったと思いますが、
それの理由がこのインテンドです。
今は大した効果を発揮しませんが、ループを勉強するとこの重要さがわかります。
中括弧の始まり( } )にきたら次の行から中括弧の終わり( } )まで
の行の先頭を数文字文後ろに下げます。
大体半角スペース5文字分ぐらいが最適の幅だとおもいます。
毎回スペースを連打して空白を作る必要はなく、
キーボードの「Tab」を押せば自動的に調整された空白をだしてくれます。
エディターによってはオートインテンド機能があるものもあります。
この字下げ、つまりインテンドを行うことで、
中括弧の適用範囲が一目で分かるようになります。
4 長いプログラムには適切なコメントを入れる。
コメントについては全く触れていませんでした。
まだプログラムが短いので必要は無いですが、
知っておくと便利なので紹介します。
/*
Cプログラム入門 サンプルプログラム
(入力した二つの値を合計し、出力する)
*/
#include <stdio.h>
int main(void)
{
int a,b,c; //整数型の変数a,b,cを宣言
printf("aの値を入力してください。a:"); //aの値の入力を促すメッセージを表示
scanf("%d",&a); //入力した数値をaに入れる
printf("bの値を入力してください。b:");
scanf("%d",&b);
c=a+b; //a+bの値を計算する
printf("a+b=%d\n",c); //その値を出力
return 0;
}
こんな感じで、説明を加えてプログラムを分かりやすくできます。
実際はこんな大量にコメントを入れる必要はないです。
メモ程度に留めておくのがベストです。
(他人に見せる必要があったりする場合は別ですが。)
入れ方は2種類あって、
/* で始めて */ で終わる方法と、
// だけで済ませる方法があります。
後者はそのスラッシュから改行までの間でコメントが有効になります。
ですので、1行で終わる短いコメントは後者で、
数行に渡る長いコメントは前者で、という使い分けが可能です。
この4つのルールを守ることで、わかり易い記述が可能です。
細かいことのように思うかもしれませんが、この先重要ですので
整えて書くことを覚えておいてください。