Javaの学習を始めて5日くらいの人のための問題集。
簡単な問題と、解答例があるので写経するのにピッタリ。少し考えてわからなそうだったら答えを見て書き写すのが上達のコツ。

Q1
0~20の乱数を2個生成し、大きい方の数値から小さい方の数値を引いた差を求める。

[実行例]
num2:14とnum1:9の差は5です

import java.util.*;
public class Q1 {
	public static void main(String[] args) {
    Random rand=new Random();
		int num1 = rand.nextInt(21);
		int num2 = rand.nextInt(21);
		if(num1>num2){
			System.out.println("num1:"+num1+"とnum2:"+num2+"の差は"+(num1-num2)+"です");
		}else{
			System.out.println("num2:"+num2+"とnum1:"+num1+"の差は"+(num2-num1)+"です");
		}
}

Q2
0~999の乱数を繰り返し生成し、777が出るまでの回数を求める。
(while(true)を使うこと )

[実行例]
777は509回目に出ました。

import java.util.*;
public class Q2  {
	public static void main(String[] args) {
    final int LUCKY_NO=777;
		int count=0;
    Random rand=new Random();
		while(true){
			count++;
			int num=rand.nextInt(1000);
			if(num == LUCKY_NO){
				break;
			}
		}
		System.out.println(LUCKY_NO+"は" + count + "回目に出ました。");
	}
}

Q3
九九の出力をせよ。ただし、50より大きい値は出力しない。
(breakを用いる)
[実行例]
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48
7 14 21 28 35 42 49
8 16 24 32 40 48
9 18 27 36 45

public class Q3 {
	public static void main(String[] args) {	
  		for(int i=2;i<=9;i++){
  			for(int j=1;j<=9;j++){
  				if(i*j >50){
  					break ;
  				}
  				System.out.print(i*j+" ");
  			}
  			System.out.println();
  		}
  	}
}

Q4
1~20を順番に出力する。ただし、3の倍数は出力しない。
(continueを用いる)
[実行例]
1
2
4
5
7
8
10
11
13
14
16
17
19
20

public class Q4 {
	public static void main(String[] args) {	
  		for(int i=1;i<=20;i++){
  			if(i % 3 == 0){
  				continue;
  			}
  			System.out.println(i);
  		}
  	}
}

Q5
二つの数値を入力させ、その2値の入れ替えを行え。

[実行例]
xに代入する数値をいれてください。>5[enter]
yに代入する数値をいれてください。>3[enter]
2つの数値を入れ替えました。x:3,y:5

import java.util.*;
public class Q5 {
	public static void main(String[] args) {
         Scanner scan=new Scanner(System.in);
      		System.out.print("xに代入する数値をいれてください。>");
      		int x=scan.nextInt();
      		System.out.print("yに代入する数値をいれてください。>");
      		int y=scan.nextInt();
      		/*2つの値の入れ替え*/
      		int temp=x;
      		x=y;
      		y=temp;
      		System.out.println("2つの数値を入れ替えました。x:"+x+",y:"+y);
      	}
}

Q6
0~20の乱数を3個生成し、それを小さい順に出力する。
[実行例]
3つの乱数を小さい順に並べました。6,13,20

import java.util.*:
public class Q6 {
	public static void main(String[] args) {
  Random rand=new Random();
    		int num1 = rand.nextInt(21);
    		int num2 = rand.nextInt(21);
    		int num3 = rand.nextInt(21);
    		if(num1 > num2){
    			int temp=num1;
    			num1=num2;
    			num2=temp;
    		}
    		if(num1 > num3){
    			int temp=num1;
    			num1=num3;
    			num3=temp;
    		}
    		if(num2>num3){
    			int temp=num2;
    			num2=num3;
    			num3=temp;
    		}
    		System.out.println("3つの乱数を小さい順に並べました。"+num1+","+num2+","+num3);
    	}
}

Q7
実行例のような3行3列の描画をせよ。
[実行例]
★★★
★★★
★★★

public class Q7 {
	public static void main(String[] args) {
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				System.out.print("★");
			}
			System.out.println();
		}
	}
}

Q8
実行例のような描画をせよ。
[実行例]

★★
★★★

public class Q8 {
	public static void main(String[] args) {
		for(int i=0;i<3;i++){
			for(int j=0;j<=i;j++){
				System.out.print("★");
			}
			System.out.println();
		}
	}
}