実技(Javaプログラミング実習2)⑥

1.メソッド演習(戻り値なし)

public class Sample {

	public static void main(String[] args) {
		printRepeatStr("Hello",3);
	}
	public static void printRepeatStr(String str,int repeatCount){
		for(int i=0;i<repeatCount;i++){
			System.out.print(str);
		}
	}
}

2.メソッド演習(戻り値あり)

import java.util.Random;

public class Sample {

	public static void main(String[] args) {
		String ret=repeatStr("Hello",3);
		System.out.println(ret);
	}
	public static String repeatStr(String str,int repeatCount){
		String result="";
		for(int i=0;i<repeatCount;i++){
			result+=str;
		}
		return result;
	}
}

3.メソッド演習(戻り値の利用)
[実行例]
start>10 [enter]
end>20 [enter]
10から20までを足すと165です

import java.util.Scanner;

public class Sample {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		System.out.print("start>");
		int start=scan.nextInt();
		System.out.print("end>");
		int end=scan.nextInt();
		System.out.printf("%dから%dまで足すと%dです", start,end,addStartToEnd(start,end));	
	}
	public static int addStartToEnd(int start,int end){
		int sum=0;
		for(int i=start;i<=end;i++){
			sum+=i;
		}
		return sum;
	}
}

4.メソッドからメソッドの呼び出し
引数を3つとり戻り値のないprintMatrixStrメソッドを作成し以下の処理を実現せよ。
なお、処理の中で1で作成したメソッドを呼び出すこと
[実行例]
文字列を入力してください>*
1行の個数>3
何行>4
***
***
***
***

import java.util.Scanner;

public class Sample {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.print("文字列を入力してください>");
		String str=scan.nextLine();
		System.out.print("1行の個数>");
		int col=scan.nextInt();
		System.out.print("何行>");
		int row=scan.nextInt();
		printMatrixStr(str,col,row);
	}

	public static void printRepeatStr(String str,int repeat) {
		for(int i=0;i<repeat;i++) {
			System.out.print(str);
		}
	}
	public static void printMatrixStr(String str,int col,int row) {
		for(int i=0;i<row;i++) {
			printRepeatStr(str,col);
			System.out.println();
		}
	}
}

5.オーバーロード

以下のようにオーバーロードして、引数のうち最大の値を返す処理を作成せよ。
public static int max(int a,int b){処理}
public static int max(int a,int b,int c){処理}
public static int max(int a,int b,int c,int d){処理}

public class CircleArea {

	public static void main(String[] args) {
		System.out.println(max(3,6)); //6
		System.out.println(max(5,2,4)); //5
		System.out.println(max(4,2,4,3)); //4
	}
	public static int max(int a,int b){
		return a > b ? a :b;
	}
	public static int max(int a,int b,int c){	
		return max(max(a,b),c);
	}
	public static int max(int a,int b,int c,int d){
		return max(max(a,b,c),d);
	}
}