if文,for文を演習しよう!
Q1
階段の高さを入力すると、その高さの階段を描画する処理を作成せよ。
[実行例]
何段>5
*
**
***
****
*****
[解答例]
public class Ex1 {
public static void main(String[] args){
System.out.print("何段>");
int n=new java.util.Scanner(System.in).nextInt();
for(int i=n-1;i>=0;i--){
for(int j=0;j<n;j++){
if(j<i){
System.out.print(' ');
}else{
System.out.print('*');
}
}
System.out.println();
}
}
}
Q2
点数を入力するとその点数分*を描画する処理を作成せよ。
もし、0~100の範囲外の点数が入力されたら再入力させること
[実行例]
[実行例1]
何点>200 [enter]
点数は0から100です
何点>-20 [enter]
点数は0から100です
何点>12 [enter]
*****|*****|**
[実行例2]
何点>10 [enter]
*****|*****|
[解答例]
public class Ex2 {
public static void main(String[] args){
int score;
while(true){
System.out.print("何点>");
score=new java.util.Scanner(System.in).nextInt();
if(score < 0 || score >100){
System.out.println("点数は0から100です");
continue;
}
break;
}
for(int i=1;i<=score;i++){
System.out.print('*');
if( i % 5 == 0){
System.out.print('|');
}
}
System.out.println();
}
}
Q3
野球のスコアボードを作成せよ。点数は以下の確率のランダムとする。
(延長戦は考慮しなくてよい)
[点数の確率] 0...70% 1...20% 2...5% 3...3% 4...2%
[実行例]
[実行例1]
G|000|000|010|1
T|011|000|00x|2
[実行例2]
G|000|000|030|3
T|011|000|003|5
[実行例3]
G|000|000|000|0
T|000|000|000|0
[解答例]
public class Ex3 {
public static void main(String[] args){
int gTotal=0,tTotal=0;
for(int i=0;i<2;i++){
if(i==0){
System.out.print("G|");
}else{
System.out.print("T|");
}
for(int j=1;j<=9;j++){
if(i==1 && j== 9 && tTotal>gTotal){
System.out.print('x');
}else{
int n=new java.util.Random().nextInt(100);
int score;
if(n<70){
score=0;
}else if(n < 90){
score=1;
}else if(n < 95){
score=2;
}else if(n < 98){
score=3;
}else{
score=4;
}
System.out.print(score);
if(i==0){
gTotal+=score;
}else{
tTotal+=score;
}
}
if(j%3 == 0){
System.out.print('|');
}
if(j==9){
if(i==0){
System.out.println(gTotal);
}else{
System.out.println(tTotal);
}
}
}
}
}
}
コメント