1: Module Module1
2:
3: Sub Main()
4: Dim ソート対象(2) As Integer
5: Dim ソート結果(2) As Integer
6:
7: Dim rnd As Random = New Random(DateTime.Now.Millisecond)
8: '対象初期化
9: ソート対象(0) = rnd.Next(1, 100)
10: ソート対象(1) = rnd.Next(1, 100)
11: ソート対象(2) = rnd.Next(1, 100)
12:
13: '表示
14: For Each 値 In ソート対象
15: Console.Write("{0}, ", 値)
16: Next
17:
18: Console.WriteLine(vbCrLf & "--------------------")
19:
20: 'ソートする
21: If ソート対象(0) < ソート対象(1) Then '1個目のほうが2個目よか小さい?
22: If ソート対象(0) < ソート対象(2) Then '1個目のほうが3個目よか小さい?
23: ソート結果(0) = ソート対象(0) '1個目が一番小さい
24: If ソート対象(1) < ソート対象(2) Then '2個目のほうが3個目よか小さい?
25: ソート結果(1) = ソート対象(1) '2個目が2番目に小さい
26: ソート結果(2) = ソート対象(2) 'てなわけで3個目が3番目に小さい
27: Else
28: ソート結果(1) = ソート対象(2) '3個目が2番目に小さい
29: ソート結果(2) = ソート対象(1) 'てなわけで2個目が3番目に小さい
30: End If
31: Else
32: ソート結果(0) = ソート対象(2) '3個目が一番小さい
33: ソート結果(1) = ソート対象(0) 'てなわけで1個目が2番目に小さい
34: ソート結果(2) = ソート対象(1) 'てなわけで2個目が3番目に小さい
35: End If
36: Else
37: If ソート対象(1) < ソート対象(2) Then '2個目のほうが3個目よか小さい?
38: ソート結果(0) = ソート対象(1) '2個目が一番小さい
39: If ソート対象(0) < ソート対象(2) Then '1個目のほうが3個目よか小さい?
40: ソート結果(1) = ソート対象(0) '2個目が2番目に小さい
41: ソート結果(2) = ソート対象(2) 'てなわけで3個目が3番目に小さい
42: Else
43: ソート結果(1) = ソート対象(2) '3個目が2番目に小さい
44: ソート結果(2) = ソート対象(0) 'てなわけで2個目が3番目に小さい
45: End If
46: Else
47: ソート結果(0) = ソート対象(2) '3個目が一番小さい
48: ソート結果(1) = ソート対象(1) 'てなわけで2個目が2番目に小さい
49: ソート結果(2) = ソート対象(0) 'てなわけで1個目が3番目に小さい
50: End If
51: End If
52:
53: '表示
54: For Each 値 In ソート結果
55: Console.WriteLine("{0} ", 値)
56: Next
57: Console.ReadKey()
58:
59: End Sub
60:
61: End Module