-
下記例題3は、学歌の歌詞を標準出力に表示するプログラムである。
例題3-1
public class Kadai10_3{
public static void main(String[] args){
System.out.println("新墾の千城ケ丘に");
System.out.println("今開くあしたへの門");
System.out.println("われ等ともにここに集いぬ");
System.out.println("新たなる門出のために");
System.out.println("昨日までかくありぬとも");
System.out.println("今日はまた泥むことなし");
System.out.println("明日ゆくはいかなる道ぞ");
System.out.println("わが旅の終わることなく");
System.out.println();
}
}
歌詞を3回表示するようにプログラムを変更したい。
ただし、歌詞の部分をループで繰り返す代わりに、歌詞を表示する処理をメソッドlyrics()として実装し、このメソッドをmain()メソッドから3回呼び出すようにしたい。
修正後のmain()メソッドは下記例題3-2のような形になるように、クラスメソッドlyrics()を実装し、プログラム Kadai10_3.java を修正せよ。
例題3-2
public static void main(String[] args){
System.out.println("学歌を歌いましょう\n");
lyrics(); //メソッド lyrics() 呼び出し
System.out.println("大きな声で歌いましょう\n");
lyrics(); //メソッド lyrics() 呼び出し
System.out.println("心を込めて歌いましょう\n");
lyrics(); //メソッド lyrics() 呼び出し
}
※ \n は改行を意味するエスケープシーケンスである。(テキストp.26)
実行結果(修正後)
学歌を歌いましょう
新墾の千城ケ丘に
今開くあしたへの門
われ等ともにここに集いぬ
新たなる門出のために
昨日までかくありぬとも
今日はまた泥むことなし
明日ゆくはいかなる道ぞ
わが旅の終わることなく
大きな声で歌いましょう
新墾の千城ケ丘に
今開くあしたへの門
われ等ともにここに集いぬ
新たなる門出のために
昨日までかくありぬとも
今日はまた泥むことなし
明日ゆくはいかなる道ぞ
わが旅の終わることなく
心を込めて歌いましょう
新墾の千城ケ丘に
今開くあしたへの門
われ等ともにここに集いぬ
新たなる門出のために
昨日までかくありぬとも
今日はまた泥むことなし
明日ゆくはいかなる道ぞ
わが旅の終わることなく
-
下記例題4-1はサイコロを振るサンプルプログラムである。
例題4-1
public class Kadai10_4 {
public static void main(String[] args){
int dice;
dice = (int)(Math.random()*6)+1; //1-6 を乱数で生成
System.out.println("dice = "+dice);
}
}
上記例題4-1を、サイコロを3回振った結果を表示するようにプログラムを変更したい。
ただし、サイコロの乱数を決定する処理をメソッドroll()として実装し、このメソッドをmain()メソッドから3回呼び出すようにしたい。
修正後のmain()メソッドは下記例題4-2のような形になるように、int型メソッドroll()を実装し、プログラム Kadai10_4.java を修正せよ。
例題4-2
public static void main(String[] args){
int dice1, dice2, dice3;
dice1 = roll();
dice2 = roll();
dice3 = roll();
System.out.println("dice1 = "+dice1);
System.out.println("dice2 = "+dice2);
System.out.println("dice3 = "+dice3);
}
実行例(修正後)
dice1 = 3
dice2 = 5
dice3 = 2
※サイコロの目の結果は、ランダムのため実行毎に違う。
-
メソッドから別のメソッドを呼び出すこともできる。
下記例題5では、メソッドhelloworld()からメソッドhello()を呼び出している。
例題5
public class Kadai10_5 {
public static void main(String[] args){
helloworld(); //メソッドhelloworld()を呼び出す
}
static void helloworld(){
hello(); //メソッドhello()を呼び出す
System.out.println(", World!");
}
static void hello(){
System.out.print("Hello");
}
}
上記例題を参考に、", World!"を標準出力に出力するメソッドworld()を新たに追加し、メソッドhelloworld()の中でSystem.out.println(", World!");の代わりにメソッドworld()を呼び出し、標準出力に"Hello, World!"と表示するように、プログラム Kadai10_5.java を修正せよ。
実行例(修正後)
Hello, World!
-
main()メソッドはvoid型メソッドなので、return で終了することができる。
下記例題6では、標準入力から'y'を入力すると、正常にプログラムを終了したい。しかし、下記例題のままでは、'y'を入力しても、処理を続行してしまう。
例題6
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Kadai10_6 {
public static void main(String[] args) throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("終了しますか?(y/n):");
String s = buf.readLine();
if(s.equals("y")){
System.out.println("終了します");
}
System.out.println("処理を続行します");
}
}
上記例題を参考に、適切な場所に return を追加し、標準入力から'y'が入力された場合に、"終了します"と表示した後に正常終了するように、プログラム Kadai10_6.java を修正せよ。
実行例(修正後)
終了しますか?(y/n):y
終了します
※水色は標準入力からの入力
-
下記例題7は、標準入力からユーザの年齢を入力し、年齢に応じたチケット種別の料金を表示するプログラムである。
メソッドticket()は、標準入力から年齢を読み込み、年齢に応じてチケット種別(0~2)を返す。
例題7
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Kadai10_7 {
public static void main(String[] args)throws IOException{
switch(ticket()){ //チケット種別により料金を選択
case 0:
System.out.println("\\0");
break;
case 1:
System.out.println("\\800");
break;
case 2:
System.out.println("\\1600");
break;
}
}
static int ticket() throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("年齢を入力:");
int age=Integer.parseInt(buf.readLine());
if(age<3){
System.out.println("3才未満は無料");
return 0; //チケット種別'0'を返す
}else if(age<16){
System.out.println("15才以下は子供料金");
return 1; //チケット種別'1'を返す
}
System.out.println("大人料金");
return 2; //チケット種別'2'を返す
}
}
※ \\ は \ 記号(バックスラッシュ・円記号)の文字リテラルを意味するエスケープシーケンスである。(テキストp.26)
上記例題を参考に、新たに60才以上の年齢のチケット種別を3と返す処理をメソッドticket()に追加し、main()メソッドでチケット種別3をチケット種別1と同じく"\800"と表示するよう、プログラム Kadai10_7.java を修正せよ。
実行例(修正後)
年齢を入力:65
60才以上はシニア料金
\800
※水色は標準入力からの入力
-
下記説明通りのプログラム Kadai10_8.java を作成せよ。
標準入力から整数を読み込み、数値が20以上の場合、メソッドvoid adult()を呼び出し、20未満の場合はメソッドvoid child()を呼び出す。
メソッドvoid adult()は、「成人です」と標準出力に表示する。
メソッドvoid child()は、「未成年です」と標準出力に表示する。
Kadai10_8 実行例
年齢を入力: 19
未成年です
年齢を入力: 21
成人です
※水色は標準入力(キーボード)からの入力