1

この記事の目次



このページは「メソッドとは」の演習問題です。「メソッドとは」の基礎を学びたい方はこちらで参考してください。

1.  負正を区別するメソッド


問題:受け取ったint型引数が負であれば-1を返却し、0であれば0を返却し、正であれば1を返却するメソッドsignOf()を作成する

注意 : メソッドだけ作っても、正しく動作するかどうかは検討できないため、メソッドをテストするmainメソッドを利用して確認しましょう。

解答例
負正を区別するメソッド
package helloworld;

public class HelloWorld {
        
    public static void main(String[] args) {
        System.out.println(signOf(3));
        System.out.println(signOf(0));
        System.out.println(signOf(-3));
    }
    
    public static int signOf(int n){
        if (n<0)
            return -1;
        else if(n == 0) 
            return 0;
        else 
            return 1;
    }
      
}

2.  最小値を求めるメソッド


問題:3つのint型引数a,b,cの最小値を求めるメソッドmin()を作成しましょう

解答例
最小値を求めるメソッド
package helloworld;

public class HelloWorld {
        
    public static void main(String[] args) {
        int min = min(5,3,7);
        System.out.println(min);
    }
    
    public static int min(int a, int b, int c){
        if (a<= b && a<= c)
            return a;
        else if (b<= a && b<= c)
            return b;
        else 
            return c;
    }
      
}

3.  1+2+...+nの和を計算するメソッド


問題:1からnまでの全整数の和を求めて返却するメソッドsumUpを作成しましょう

注意 : 引数が負のときの処理もメソッドに入れましょう。

解答例
1+2+...+nの和を計算するメソッド
package helloworld;

public class HelloWorld {
        
    public static void main(String[] args) {
        int sum = sumOf(5);
        System.out.println(sum);
    }
    
    public static int sumOf(int n){
        //引数は負の時に処理
        if(n<0){
            System.out.println("正数を入れてください。");
            return -1;
        }
        
        int sum = 0;
        //int iを1からnまで繰り返して、sumに足し加える。
        for(int i = 0;i<= n;i++ ){
            sum +=i;
        }
        return sum;
    }
      
}

4.  ピラミッドを作成するメソッド


問題:"*"を用いて、n階のピラミッドを作るメソッドを作成する

ヒント : 二重for文を利用すればいいです。

解答例
package helloworld;

public class HelloWorld {
        
    public static void main(String[] args) {
        Pyramid(10);
    }
    
    public static void Pyramid(int n){
        
        for(int i =1;i<=n;i++){
            for(int j=1;j<=n-i;j++){
                System.out.print(" ");
            }
            for(int j=n-i+1;j<=n+i-1;j++){
                System.out.print("*");
            }
            System.out.println("");
        }
        
    }
      
}

実行結果:
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

5.  乱数を生成する


問題:a以上b未満の乱数を生成するメソッドramdom(int a, int b)を作成する。

注意 : bの値がaより小さい場合は、aの値をそのまま返却すること。

乱数を生成するメソッド
package helloworld;

import java.util.Random;//乱数を生成するクラス

public class HelloWorld {
        
    public static void main(String[] args) {

        int ramdom = random(3,7);
        System.out.println(ramdom);
        
    }
    
    public static int random(int a,int b){
        if (a > b)
            return a;   //a>bの時にaを返す
        
        Random rnd = new Random();//インスタンスを作成
        int r = rnd.nextInt(b+1);//1からbまでの乱数を生成;
        while (r < a){
            r = rnd.nextInt(b);
        }
        return r;
    }
      
}

aからbまでの乱数を生成するrandomメソッドは最初に1からbまでの乱数rを生成し、(r < a)になっている間、乱数rを再生成する。結局「return r;」の行までに行った時は乱数rがa以上b以下を満たすはずです。

6.  まとめ


メソッドとは複数の文をまとめ、それを1つの処理として名前をつけたもので、部品の最小単位です。この記事ではJAVAのメソッドの概念、メソッドの宣言、メソッドの呼び出し、メソッドの引数、ローカル引数、return文-メソッドの戻り値などに関する演習問題を紹介しました。次の記事に配列を扱うメソッドをいくつ紹介しますので、ぜひご覧ください。

広告