Qiita Conference 2025

みのるん (@minorun365)

30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【11章】Javaを学ぼう

Last updated at Posted at 2021-09-07

今回の記事では、戻り値を中心に書いていきたいと思います。私自身のアウトプットの場になりますので、よろしくお願いいたします!

戻り値

メソッドの処理結果を、メソッドの呼び出し元で使いたい場合があります。このようなときは、メソッドが戻り値を返すようにします。

メソッドの戻り値

メソッドの中でreturnを使うと、returnの値をメソッドの呼び出し元に返すことができます。また、戻り値があるメソッドは、戻り値のデータ型を指定します。「public static void」のvoidの部分で指定します。

Main.java
public static 戻り値のデータ型 メソッド名(引数) {                 
  return 戻り値;    //呼び出し元にデータを返す
}
Main.java
public static int add(int x, int y) {                 
  return x + y;    //x + yが戻り値
}

上図のaddメソッドは、戻り値が整数なので「public static int ...」となります。
それではもう少し具体例に触れていきたいと思います。

Main.java
class Main {
 public static void main(String[] args) {       
  int total = add(8, 4);   //add(8, 4)は12
  System.out.println(total);                                      
 }
 public static int add(int x, int y) {     
  return x + y;     //8+4の結果が戻り値になる
 }
}

出力結果↓

コンソール
12

補足ですが、voidは戻り値がない、という意味になります。戻り値のない(returnがない)メソッドには、voidを指定します。

また、下図のように同名のメソッドは原則として定義できません。同じメソッドが複数存在すると、メソッドを呼び出したときにどのメソッドを用いればいいのか、コンピュータがわからなくなってしまうためです。

Main.java
class Main {
 public static void main(String[] args) {       
  hello();   //エラーになる                                      
 }
 public static void hello() {     
  System.out.println("こんにちは");
 }                                 //同名のメソッド(hello())
 public static void hello() {     
  System.out.println("Hello");
 }
}

ただし、引数の型や個数が違う場合は同名のメソッドを定義できます。同名のメソッドがあっても、引数が違えばどれを呼べばいいのかコンピュータが判断できるためです。
同名のメソッドを定義することをオーバーロード
と言います。

Main.java
class Main {
 public static void main(String[] args) {       
  hello();        //引数がないhelloメソッド
  hello("Mia");   //String型の引数を持つhelloメソッド                                  
 }
 public static void hello() {     
  System.out.println("こんにちは");
 }                               
 public static void hello(String name) {     
  System.out.println("こんにちは" + name + "さん");
 }
}

出力結果↓

コンソール
こんにちは
こんにちはMiaさん

メソッドを組み合わせる

メソッドは、mainメソッド以外のメソッドから呼び出すことも可能です。
メソッドから他のメソッドを呼び出してみます。

Main.java
class Main {
 public static void main(String[] args) {       
  System.out.println(average(3, 8));                                      
 }
 public static double average(int x, int y) { 
  int total = add(x, y);
  return(double)total / 2;
 }
 public static int add(int x, int y) {
  return x + y;   
 }
}

averageメソッドは平均を求めるメソッドです。aとbの平均は「(a + b) / 2」で求められますが、足し算の部分はaddメソッドを利用しています。

真偽値の戻り値

真偽値のデータ型はbooleanなので、メソッド定義は下図のようになります。

Main.java
public static boolean isEven(int x) {                 
  return x % 2 == 0;  //偶数であればtrue
}

isEvenメソッドは引数の値が偶数かどうかを調べ、偶数であればtrue、奇数であればfalseを返します。
isEvenメソッドをもう少し具体的に利用してみます。

Main.java
class Main {
 public static void main(String[] args) {  
  int number = 7;
  if(isEven(number)) {    
   System.out.println(number + "は偶数です");                                      
  } else {
   System.out.println(number + "は奇数です");
  }
 }
 public static boolean isEven(int x) { 
  return x % 2 == 0;
 }
}

出力結果↓

コンソール
7は奇数です

以上が戻り値を中心とした説明になります。次章ではクラスについて詳しく書いていきたいと思います。
よろしければご覧になってください!
最後までご覧いただきまして、ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?