このページのコンテンツ
同じ処理を何度も実行するなら関数が便利!
何度も同じ処理を実行するコードを書くのは、読み易さ、メンテナンス性の観点から好ましくありません。このような場合には関数を定義しましょう。ここでは3つの関数の例を挙げておきます。関数はmain(){…..}の前に記述します。
1つのint型の変数を受け取って、その2乗を計算する関数
f(x)=x2と書ける関数をC++で記述します。関数の名前は自由ですが、ここではpow2という名前を使うことにします。すなわち、pow2(x)=x2となる関数を作ります。完成形は下のようになります。pow2関数には戻り値としてint型の答えを返して欲しいので int pow2(…){…} というように初めに書いています。また、受け取る数をint型として受け取るので、int pow2(int x){…} というように書いています。変数名xは自由に変えることができます。
ここで作った関数を使いたい場合には、pow2(4)というようにして、カッコの中にint型の整数を入れます。
#include <stdio.h>
using namespace std;
int pow2(int x){
return x*x;
}
int main(){
printf("%d",pow2(4));
return 0;
}
2つのdouble型の変数を受け取って、その積を計算する関数
C++で作る関数は引数をいくらでも取ることができます。ここでは引数がxとyの2つの、f(x,y)=xyと書ける関数を記述します。関数の名前は、ここではmulという名前を使うことにします。すなわち、mul(x,y)=xyとなる関数を作ります。完成形は下のようになります。mul関数には戻り値としてdouble型の答えを返して欲しいので double mul(…){…} というように初めに書いています。また、受け取る数2つをdouble型として受け取るので、double mul(double x,double y){…} というように書いています。このように複数の引数を取る場合にはコンマで区切ります。ここでも、変数名x,yは自由に変えることができます。
ここで作った関数を使いたい場合には、mul( 4.2 , 5.1 )というようにして、カッコの中にdouble型の数値2つをコンマ区切りで入れます。
#include <stdio.h>
using namespace std;
double mul(double x, double y){
return x*y;
}
int main(){
printf("%f",mul( 4.2 , 5.1 ));
return 0;
}
3つのdouble型の変数を受け取って、最大値を求める関数
C++で作る関数の中に、if文を使った処理を書いてみましょう。ここでは引数がx、y、zの3つの関数を記述します。関数の名前は、ここではfindmaxという名前を使うことにします。いろいろな書き方があると思いますが、完成形の一例は下のようになります。findmax関数には戻り値としてdouble型の答えを返して欲しいので double findmax(…){…} というように初めに書いています。また、受け取る数3つをdouble型として受け取るので、double findmax(double x,double y,double z){…} というように書いています。
ここで作った関数を使いたい場合には、mul( 4.2 , 5.1 , 7.2 )というようにして、カッコの中にdouble型の数値3つをコンマ区切りで入れます。
#include <stdio.h>
using namespace std;
double findmax(double x, double y, double z){
if(x>y&&x>z){ return x;} // 「A && B」は「AかつB」を表す
if(y>x&&y>z){ return y;}
if(z>x&&z>y){ return z;}
}
int main(){
printf("%f",findmax( 4.2 , 5.1 ,7.2 ));
return 0;
}