関数とステートメント関数プログラミングにおいて特定の処理をするプログラムをまとめておくということは重要なことです。 そうすることによってその機能を何度も書かずに済んだり、ソースコードが読みやすくなります。 C言語では関数によってプログラムをまとめることができます。 関数の使い方関数は 関数名(引数リスト); という形で使います。たとえば
とするとgetchar()という関数を使うことになります。 引数と戻り値関数には引数を与えてその動きを制御することができます。 たとえば
とするとコンソールに指定した文字を出力する関数であるputcharをcを出力するよう指定して呼び出したことになります。 この引数は複数渡すことができます。
と書くと%dとiを渡すことができます。 また関数はプログラムを実行した結果を伝えることができます。これを関数の戻り値といいます。 戻り値は値なのでiを変数とすると
とするとコンソールに入力された文字をiに代入することができます。 引数の数や型、戻り値の型は関数ごとに決まっています。 関数の作り方当然ながら関数は作ることができます。関数は以下のように書きます。
引数はその関数の中だけであらかじめ値の入った変数として扱うことができます。 voidについて引数を持たなかったり戻り値を返さない関数を作りたいことが出てきます。その時にはvoidと書けばよいことになっています。 たとえば
とすると引数を持たず戻り値もない関数Kが出来上がります。 戻り値がない場合、関数の最後のreturn;は省略できます。 関数のプロタイプ宣言C言語は先に宣言してからでないと関数や変数を使うことができません。 しかし関数はかなりの行数を書くことになり使う前に宣言したくないという場合があります。 この場合関数の戻り値、名前、引数だけを指定して内容を後で書くことができます。この中身のない関数の宣言をプロトタイプ宣言といい以下のように書きます。
main関数皆さんがプログラムを作るとき
と書いていたと思います。このmain関数は特別な関数でプログラムが実行されるとき最初に自動的に呼び出されます。 またこの関数の戻り値はint型でそのプログラムの実行結果を表します。通常は正常終了の0を返します。 引数については
とするとコンソールに入力されたコマンドラインを取得することができます。 コマンドラインはコンソールに
とすることで指定できます。この時argcは引数の数、argvが入力された文字列になります。 *や[]の意味については後の講でやります。] ステートメントC言語にはプログラムの流れを制御する専用の構文が用意されています。これをステートメントといいます。 条件分岐ある条件が真つまり0以外か、偽つまり0かで処理を分岐します。 条件分岐はif構文て行うことができます。
else if や elseは省略することができます。条件には式や関数を入れることができます。 特殊なケースとしてある式の結果の値で処理をたくさん分けたいときがあります。その場合swichを使います。
break;はここで処理を中断するという意味です。もしbraek;がないとcaseの下の処理まで行われます。 繰り返し条件が真の間中処理を繰り返します。 繰り返しにはfor構文とwhile構文があります。
初期化式とはfor構文の最初に必ず実行される式です。更新式は繰り返す処理が終わるたびに実行される式です。 通常は初期化式で変数を初期化して、更新式で変数を変更します。 一方while構文は
{ 繰り返す処理 } または
do whileは先に処理を実行してから条件を判断します。 continue;とbreak;繰り返し処理の中にcontinue;と書くとそのループを中断し次のループに移ります。 break;と書くと繰り返しを中止します。 |