超簡単!!関数の記述方法
関数には、引数と戻り値があります。
以下の4つのケースに分けられます。
①引数も戻り値もない場合
②引数があって、戻り値がない場合
③引数はないが、戻り値がある場合
④引数も戻り値もある場合
書き方をみていきましょう。
①引数も戻り値もない場合のケース
#include <stdio.h>
void show_message(void)
{
printf("今日もいい天気ですね。");
return; //return;は省略可能
}
int main()
{
show_message();
return 0;
}
関数は、引数も戻り値も設定しない場合
「void 関数名(void) { 命令 } 」
と書きます。
関数を呼び出す場合は、
「関数名();」
で簡単に呼び出せます。
何度も呼び出したい場合は、
int main()
{
show_message();
show_message();
show_message();
show_message();
show_message();
}
このように記述するだけでOKです。
②引数があって、戻り値がない場合のケース
#include <stdio.h>
void show_message(int x)
{
printf("今は、朝%d時です。\n", x);
return; //return;は省略可能
}
int main()
{
int time = 7;
show_message(time);
show_message(8);
}
mainの中に、「show_message(time)」と、先ほどとは違い、()の中にtimeが書かれていますが、「time」は、「引数」といい、関数に渡したい値や変数を記述します。
また、関数の中にも、(int x)と書かれています。
こちらは、「(もらう値の型名 仮引数)」と記述します。
仮引数というのは、関数の中だけで使える変数のことで、先ほど関数を呼び出した時にtimeという名前の変数を引数として送ったと思いますが、それをコピーしてここでは、int型の変数 x に代入されているようなイメージです。
仮引数名は、好きな名前をつけてもらって大丈夫です。
③引数はないが、戻り値がある場合のケース
#include <stdio.h>
char show_at(void)
{
return '@';
}
int main()
{
char c;
c = show_at();
printf("%c", c);
return 0;
}
戻り値がない場合は、「void 関数名」と書いていましたが、戻り値がある場合には、
「char 関数名」
「int 関数名」
「double 関数名」
など、戻り値として設定したい値の型名を記述します。
今回は、'@'を戻り値として設定したいので、「char 関数名」と指定しています。
④引数も戻り値もあるケース
#include <stdio.h>
int tax_calc(int x)
{
int taxin = x * 1.08;
return taxin;
}
int main()
{
int t_garigari, t_comic, t_jump;
int garigari = 60;
int comic = 400;
int jump = 230;
t_garigari = tax_calc(garigari);
t_comic = tax_calc(comic);
t_jump = tax_calc(t_jump);
printf("ガリガリ君%d円、コミック%d円、ジャンプ%d円", t_garigari, t_comic, t_jump);
}
③の時と同様、戻り値として戻したい型名を設定する必要があります。また、②と同様、引数の設定が必要です。
「int 関数名(int x)」
のように、記述します。
また、引数と戻り値の型名を変更して、
「double 関数名(int x)」
のように記述することも可能です。
呼び出し元では、関数として戻ってきた値を、一旦変数に格納するのが一般的です。
t_garigari = tax_calc(garigari);
このように記述していますね。
④**引数が2つ以上あるケース
#include <stdio.h>
int max(int x ,int y)
{
if(x > y){
return x;
}else{
return y;
}
}
int main()
{
int result;
int a = 12;
int b = 15;
result = max(a,b);
printf("%d", result);
}