第4講 メソッドすなわち関数を理解しようその1 
第3話 値を返す関数
第2話のコード(プログラムの文章)を次のように変更してみましょう。
class x{
  public static void main(String args[]){
    f();
    System.out.print ("1+2+3=");
    System.out.println(g());
  }
  public static void f(){
    System.out.println("Javaプログラミングの学習");
  }
  public static int g(){
    int a;
    a=0;
    a=a+1;
    a=a+2;
    a=a+3;
    return(a);
  }
}
コマンド プロンプト画面
入門

なんと、コードがかなり変わったにもかかわらず実行結果は同じです。
public static int g()で関数gはint型の値を返す関数ということになります。
    return(a);
を見ると、aの値を返しています。
どこに返すのでしょうか。
呼んだ関数へです。
今回はmainへです。
前回説明をし忘れましたが、
  public static void main(String args[]){
    f();
  }
は関数fに命令を下すことですが、
関数fに命令を下すことを関数fを呼び出すというのです。
mainは親分で指令書であると前話で書きましたが、
実は呼び出し=命令は、どの関数からでもできるのです。
ただし、子分が親分に命令することはできません。
呼び出した関数へ値を返す、今回gを呼び出しているのはmainですから、
mainに値を返すことになります。
そして、
    System.out.println(g());
で返された値をコマンド プロンプトに表示しています。
つまり、gに命じて1+2+3を計算させその結果を戻させ、表示しているのです。
戻す値を戻り値といいます。

戻り値の型が関数の型です。
ですから、文字を返すこともできます。
ソースを次のように変更して、コンパイル・実行してましょう。
class x{
  public static void main(String args[]){
    f();
    System.out.println(g());
  }
  public static void f(){
    System.out.print ("Javaプログラミングの学習");
  }
  public static String g(){
    return("はとっても楽しい。");
  }
}
実行結果
入門

当然、浮動小数点を返す関数もあります。
ソースを次のように変更して、コンパイル・実行をしてみましょう。
class x{
  public static void main(String args[]){
    f();
    System.out.println(g());
  }
  public static void f(){
    System.out.print ("5÷3=");
  }
  public static float g(){
    return((float)5/3);
  }
}
実行結果
java

(float)5/3の(float)はキャストといいます。
5/3はJavaでは自動的に小数部分が切り捨てられてしまうようなので、
強制的に5/3をfloat型に変更しています。
強制的に型を変更することをキャストというのです。

戻り値には、整数型、浮動小数点型、文字型などがありその戻ってくる型が関数の型です。

本来関数の意味は、
y=f(x)
初心者
xをfに送り、fは加工してyに返すという意味です。

戻り値があるなら、送る値があるのでしょうか。
答えは次話。

第2話へ 第4話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部