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

1.変数と合計
1〜100の乱数を指定回発生させ、それを合計せよ。
[実行例]
1~100の乱数を発生させてそれを合計していきます。
何回発生させますか>5
3がでました。
63がでました。
21がでました。
72がでました。
60がでました。
合計は219です

[解答例]

public class Sample{
	public static void main(String[] args){
		System.out.println("1~100の乱数を発生させてそれを合計していきます。");
		System.out.print("何回発生させますか>");
		int count=new java.util.Scanner(System.in).nextInt();
		int sum=0;
		for(int i=0;i<count;i++){
			int num=new java.util.Random().nextInt(-5);
			System.out.println(num+"がでました。");
			sum+=num;
		}
		System.out.println("合計は"+sum+"です");
	}
}

2.2値の入れ替えグループ演習
以下の処理を実現せよ。

整数を3つ入力してください。
a:>4 [enter]
b:>2 [enter]
c:>10 [enter]
3つの値を小さい順に出力します。
2
4
10
public class Sample{
	public static void main(String[] args){
		System.out.println("整数を3つ入力してください。");
		//入力パート
		System.out.print("a:>");
		int a=new java.util.Scanner(System.in).nextInt();
		System.out.print("b:>");
		int b=new java.util.Scanner(System.in).nextInt();
		System.out.print("c:>");
		int c=new java.util.Scanner(System.in).nextInt();
		
		//並び替え
		if(a>b){
			int temp=a;
			a=b;
			b=temp;
		}
		if(a>c){
			int temp=a;
			a=c;
			c=temp;
		}
		if(b>c){
			int temp=b;
			b=c;
			c=temp;
		}
		//出力パート
		System.out.println("3つの値を小さい順に出力します。");
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);	
	}
}

3.バブルソートの考え方
4.for文練習
以下の処理を実現せよ。
*をいくつ出力する>5 [enter]
*****

[解答例]

public class Sample{
	public static void main(String[] args){
		System.out.print("*をいくつ出力する>");
		int num=new java.util.Scanner(System.in).nextInt();
		for(int i=0;i<num;i++){
			System.out.print('*');
		}	
	}
}

以下の処理を実現せよ。
100~50の範囲をカウントダウンせよ。
ただし、5の倍数は出力しない。
[実行例]
99
98
97
96
94
93
省略
51

[解答例]

public class Sample{
	public static void main(String[] args){
		for(int i=100;i>=50;i--){
			if(i%5 !=0){
				System.out.println(i);
			}
		}
	}
}

5.for文,分岐演習
以下の処理を実現せよ。
1-100をカウントアップせよ、ただし、3の倍数はFizz,5の倍数はBuzz
3と5の公倍数はFizzBuzzと出力する。
[実行例]
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
以下略

[解答例]


public class Sample{
	public static void main(String[] args){
		for(int i=1;i<=100;i++){
			if(i%3==0 && i%5==0){
				System.out.println("FizzBuzz");
			}else if(i%3==0){
				System.out.println("Fizz");
			}else if(i%5==0){
				System.out.println("Buzz");
			}else{
				System.out.println(i);
			}
		}
	}
}


以下の処理を実現せよ。
サイコロを2個振ってポイントを表示せよ。
ポイントは2つの出目の合計。ただし、ゾロ目の場合は2倍とする。
(サイコロの目は1~6のランダム)
[実行例1]
3と5が出た。8点

[実行例2]
4と4が出た。16点

[解答例]

public class Sample{
	public static void main(String[] args){
		int a=new java.util.Random().nextInt(6)+1;
		int b=new java.util.Random().nextInt(6)+1;
		int point=a+b;
		if(a==b){
			point*=2;
		}
		System.out.println(a+"と"+b+"が出た。"+point+"点");	
	}
}