ここでの解答例はクラスやメソッドを省略してあるので各自で補って実行してください。

【lesson 1-1】

変数 a に乱数(0~9)、 b に乱数(10~19)を代入しその中身を表示。
その後、a と b の中身を入れ替えて表示。
解答例へ

【lesson 1-2】

要素数10の配列 value のすべての要素に乱数(0~9)を代入しすべて表示。
その後、合計( int型 )と平均( double型 )を表示。
解答例へ

【lesson 1-3】

乱数(0~9999)を取得し表示。
乱数が100以下だったらループを抜ける。
解答例へ

【lesson 1-4】

1 2 3
4 5 6
7 8 9
上記のように3×3で順番に数字を表示
先に乱数(1~9)を取得し、ユーザー入力(1~9)と同じか判定して結果を表示。
結果に関わらず、下記(4が正解だったときの例)のようにハズレを x にして表示。
x x x
4 x x
x x x
解答例へ

【lesson 1-5】

要素数10の配列 array の要素すべてに乱数(0~99)を代入して表示。
その後、大きい順に入れ替えて表示。
解答例へ

【1-1 解答例】

// a,b 乱数取得
int a = new java.util.Random().nextInt( 10 );
int b = new java.util.Random().nextInt( 10 ) + 10;

// a,b を表示
System.out.println( "a = " + a + ", b = " + b );

// 入れ替え
int temp = a;
a = b;
b = temp;

// 再度 a,b を表示
System.out.println( "a = " + a + ", b = " + b );
【覚えなくていい豆知識】
temp は temporary の略で「一時的」という意味。使い捨ての変数名としてよく使う。
入れ替えは EXOR(^) を使うと一時変数を使わず可能。
// x=5,y=3 の入れ替え 5は2進数で 0b101 3は 0b011
x ^= y;		// x = x ^ y ⇒ 0b101 ^ 0b011 = 0b110 (x には 6 が代入される)
y ^= x;		// y = y ^ x ⇒ 0b011 ^ 0b110 = 0b101 (y には 5 が代入される)
x ^= y;		// x = x ^ y ⇒ 0b110 ^ 0b101 = 0b011 (x には 3 が代入される)
問題に戻る

【1-2 解答例】

int[] value = new int[ 10 ];

// 乱数取得
for( int i = 0 ; i < value.length ; i++ ) value[ i ]  = new java.util.Random().nextInt( 10 );

// 表示
String str = "";
for( int i = 0 ; i < value.length ; i++) str += value[ i ] + " ";
System.out.println( str );

// 合計算出
int total = 0;
for( int i : value ) total += i;

// 平均算出
double  avg = ( double )total / value.length;

// 結果表示
System.out.println( "合計:" + total + " 平均:" + avg );
String str = ""; は次の行で NullPointerException 回避のための空文字を代入している。
"" の代わりに null を代入すると null まで表示されてしまう。
平均算出時 total を double で型変換しているのは
int のまま計算すると小数点以下が切り捨てられて avg に代入されるから。
問題に戻る

【1-3 解答例】

while(true) {

	// 乱数を取得し表示
	int r = new java.util.Random().nextInt(10000);
	System.out.println( r );

	// 無限ループを抜ける
	if( r <= 100 ) break;
}
無限ループには必ず break や return などループを脱出する処理を入れる。
問題に戻る

【1-4 解答例】

// 導入(好きなように表示)
System.out.println( "9つの箱の1つに宝石が隠されている!");

// 1~9 までを表示
for( int i = 1 ; i <= 9 ; i++ ) {
	System.out.print( i + " ");
	if( i % 3 == 0 ) System.out.print("\n");
}

// 乱数取得
int jwl = new java.util.Random().nextInt( 9 ) + 1;

// ユーザー入力
System.out.println( "宝石が入っていそうな箱を選択してください(1~9)");
int usrInput = new java.util.Scanner(System.in).nextInt();

// 結果表示
if( usrInput == jwl ) {
	System.out.println( "アタリ!宝石は君のもの!" );
} else {
	System.out.println( "ハズレ" );
}

// 箱を全部開けて表示
for( int i = 1 ; i <= 9 ; i++ ) {
	if( i == jwl ) {	// アタリの箱
		System.out.print( i + " " );
	} else {		// ハズレの箱
		System.out.print( "x ");
	}
	if( i % 3 == 0 ) System.out.print("\n");
}
if( i % 3 == 0 ) System.out.print("\n"); は i が3の倍数のとき改行
問題に戻る

【1-5 解答例】

// 配列を定義
int[] array = new int[ 10 ];

// 乱数取得
for( int i = 0 ; i < array.length ; i++ ) array[ i ] = new java.util.Random().nextInt( 100 );

// 中身を表示
for( int i : array ) System.out.print( i + " " );
System.out.print( "\n" );
		
// 並べ替え
while( true ) {
	// 並べ替え完了フラグを立てておく
	boolean isComplete = true;

	for( int i = 0 ; i < array.length - 1 ; i++ ) {

		// 前後を比較して前が小さければ入れ替え
		if( array[ i ] < array[ i + 1 ] ) {
			int temp = array[ i ];
			array[ i ] = array [ i + 1 ];
			array[ i  + 1 ] = temp;

			// 入れ替えがあったらフラグを折る
			isComplete = false;
		}
	}
	// フラグが折られてなければループを抜ける
	if( isComplete ) break;
}

// 結果表示
for( int i : array ) System.out.print( i + " " );
もっとも単純なソート。無駄が多いのでデータが大量になると重い。
for文で i < array.length -1 となっているのは、ArrayIndexOutOfBoundsException 回避のため。
i は 0~8 までなので最後の要素 array[ 9 ] を無視しているように見えるが、
i = 8 のとき array[ i + 1 ] は array[ 9 ] になる。
問題に戻る