Java:メソッドの課題(演習問題) [勉強]
先ほどのwhile文の課題(演習問題)に引き続き、今度はメソッドの課題(演習問題)です。
「メソッドとは、なんぞや?」と思いますよね。C言語やってた人は「関数と同じっぽいYO」と言うと「ほほーー」となるそうです。
では、メソッドの課題(演習問題)は以下の通りです。
問題8-1:
「長方形の縦の長さと横の長さを引数で渡すと、面積の値を返すメソッドを作成し、それを実行するクラスを作成せよ」
問題8-2:
「引数で文字と数値を渡すと、その文字を渡した数値の回数だけ表示するメソッドを作成し、それを実行するクラスを作成せよ」
問題8-3:
「引数で整数値を渡すと偶数かどうか判定するメソッドを作成し、それを実行するクラスを作成せよ」
問題8-4:
「1~1000の間のランダムな数を返すメソッドを作成し、それが偶数かどうか判定するクラスを作成せよ」
問題8-5:
「与えられた文字列が回文(前から読んでも後ろから読んでも同じ)になっているかどうかを判定するプログラムを作成せよ」
問題8-6:
「文字列の中に "abc"という文字があったら"***"に置き換えて出力するプログラムを作成せよ」
です。
問題8-5「回文判定」は、既にUPしたから今回はスルーしますね。
以下、問題8-1の回答ソースです。
import java.io.*;
public class Rectangle {
public static void main(String[] args) {
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("縦の長さを入力してください。(整数) :");
int x = Integer.parseInt(kbd.readLine());
System.out.print("横の長さを入力してください。(整数) :");
int y = Integer.parseInt(kbd.readLine());
System.out.println(x +"×"+ y +"の長方形の面積は"+menseki(x,y)+"です。");
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("正しい数値(整数)を入力してください。");
}
}
public static int menseki(int tate, int yoko) {
return (tate*yoko);
}
}
こんな感じでイイよね?? たぶん。変数名が"tate"とか"yoko"とか、分かりやすいでしょ?
次、問題8-2の回答ソースです。
import java.io.*;
public class PrintString {
public static void main(String[] args) {
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
System.out.print("表示させたい文字を入力してください。 :");
try {
String line = kbd.readLine();
System.out.print("表示させたい回数を数値で入力してください。 :");
int n = Integer.parseInt(kbd.readLine());
Print(line,n);
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("正しい数値を入力してください。");
}
}
public static void Print(String moji, int n) {
for (int i=0; i < n; i++) {
System.out.println(moji);
}
}
}
サクサクいきますよー。
次、問題8-3の回答ソースです。
import java.io.*;
public class Number {
public static void main(String[] args) {
BufferedReader kbd = new BufferedReader (new InputStreamReader(System.in));
System.out.print("数値(整数)を入力してください。 :");
try {
evenOrOdd(Integer.parseInt(kbd.readLine()));
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("正しい数値を整数で入力してください。");
}
}
public static void evenOrOdd(int n) {
if (n%2 == 0) {
System.out.println("入力された数値" + n + " は偶数です。");
} else {
System.out.println("入力された数値" + n + " は奇数です。");
}
}
}
ちょっと数値入力をline読みで文字列→整数変換を1行ですましたりして、しかもそのまま引数としてメソッドに渡してみたりしてます。
で、次、問題8-4の回答ソースです。
public class Number2 {
public static void main(String[] args) {
int num = random();
if (num%2 == 0) {
System.out.println(num + "は偶数でした。");
} else {
System.out.println(num + "は奇数でした。");
}
}
public static int random() {
return (int)(Math.random() *1000);
}
}
この辺までは楽勝ですよ。特定された機能(処理)の部分をメソッド化するだけですからねぇ。
で、問題8-5「回文判定」は既にUP済みなので、スルーします。
次、問題8-6の回答ソースです。
import java.io.*;
public class TextReplace {
public static void main(String[] args) {
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("文字列を入力してください。 :");
String line = kbd.readLine();
rePlace(line);
} catch (IOException e) {
System.out.println(e);
}
}
public static void rePlace(String s) {
String ss = s.replace("abc","***");
System.out.println(ss);
}
}
String replace()で文字列の置換してます。これ、char型だけかと思ってたけど、文字列でも置換できるんですねぇ。この文字列置換は、回文判定プログラムの後に、シコシコ書いていました。
メソッドの課題(演習問題)はこんな感じですかねぇ。
で、次のJavaネタなんですが・・・
教科書の7章while文の練習問題で、テキストファイルからの標準入力をあるルールにそって加工してHTMLファイルに変換するというのがあったので、次のブログ記事にUPしますね。
コメント 0