初学者にとって難関の一つメソッドの理解を何回かに分けてやっていく。
今回は2回目、1回目がまだの人はまずはそちらからやろう。

戻り値

メソッドはreturnすることによって呼び出し元に値を返すことができる。
まずは以下をコメントを読みながらMethodLesson7.javaを写経しよう。



public class MethodLesson7 {
	// int型の引数を2つ受け取りその和を返すメソッド
	static int sumOf(int a, int b) {
		return a + b;
	}

	public static void main(String[] args) {
		// sumOfに引数として3と5を渡すと8が返ってくるので変数sumに代入
		int sum = sumOf(3, 5);
		// 結果を出力
		System.out.println(sum); // 8
		// 返ってくる値を直接出力することも出来る
		System.out.println(sumOf(10, 20)); // 30
	}
}

値を返すというのがどういうことかがわかっただろうか?

様々な戻り値

続けて以下を写経する。

●MethodLesson8.java

[解答例]

public class MethodLesson8 {
	// int型の引数を2つ受け取りその大きい方の値を返すメソッド
	static int largeOf(int a, int b) {
		if(a>=b){
			return a;
		}else{
			return b;
		}
	}
	//double型の引数2個を受け取って長方形の面積を返すメソッド
	static double rectArea(double height,double width){
		return height*width;
	}
	//int型の引数1個を受け取ってそれが偶数ならばtrueをそうでなければfalseを返すメソッド
	static boolean isEven(int n){
		return n%2==0;
	}

	public static void main(String[] args) {
		System.out.println(largeOf(10,20)); //20
		System.out.println(rectArea(10.0,15.0));//150.0
		int x=10;
		if(isEven(x)){
			System.out.println(x+"は偶数");
		}else{
			System.out.println(x+"は奇数");
		}
	}
}

BMIアプリの作成

○MethodLesson9.javaを作成し以下の処理を実現せよ。
1.身長(cm)と体重(kg)をdouble型の引数で受け取りBMIを返すメソッドを作成せよ。
static double calcBMI(double weightKg,double heightCm){
処理
}
なおBMIは
体重(kg)/(身長(m)*身長(m))
で求められる。

2.実行すると以下の処理になるようにメインメソッドを作成せよ。
体重を入力してください(kg)>70.2
身長を入力してください(cm)>175.3
体重:70.2kg,身長:175.3cmのBMIは22.8です。

解)

import java.util.Scanner;
public class MethodLesson8 {
	//体重と身長を受け取り、bmiを返すメソッド
	static double calcBMI(double weightKg,double heightCm){
		//cmからmに変換
		double heightM=heightCm/100;
		//bmiの計算
		double bmi=weightKg/(heightM*heightM);
		return bmi;
	}

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		System.out.print("体重を入力してください(kg)>");
		double weight=scan.nextDouble();
		System.out.print("身長を入力してください(cm)>");
		double height=scan.nextDouble();
		//calcBMIを呼び出した結果をbmiに代入
		double bmi=calcBMI(weight,height);
		System.out.printf("体重:%.1fkg,身長:%.1fcmのBMIは%.1fです。",weight,height,bmi);
		scan.close();
	}

}

確認テスト

税抜き価格(int)と消費税率(int)を渡すと税込み価格(int)を返すメソッドを作成し、以下の処理を実現せよ。
なお、消費税の計算の際に出た端数は切り捨てでよい。
[実行例]
消費税は何%ですか>8
価格を入力(0でお会計)>120
価格を入力(0でお会計)>300
価格を入力(0でお会計)>420
価格を入力(0でお会計)>0
お買い物合計金額は907円(税込み)です。
解)

import java.util.Scanner;
public class MethodLesson9 {
	//税抜価格(int)と消費税率(int)を受け取り税込み価格(int)を返すメソッド
	static int calcTotalFee(int costExcludeTax ,int tax){
		double totalFee=costExcludeTax*(1+tax/100d);
		return (int)totalFee;
	}

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int cost=0;
		int price;
		System.out.print("消費税は何%ですか>");
		int tax=scan.nextInt();
		do{
			System.out.print("価格を入力(0でお会計)>");
			price=scan.nextInt();
			cost+=price;
		}while(price !=0);
		int totalFee=calcTotalFee(cost,tax);
		System.out.printf("お買い物合計金額は%d円(税込み)です。",totalFee);
	}
}