Javaベース(switch、配列)
ポイント:1、フロー制御文switch 2、配列3、ランダム点呼器ケース
01 switch文の解釈
A:switch文の解釈
02 switch文の週判断
A:switch文の週判断
03 switch文が受け入れるデータ型
A:switch文が受け入れるデータ型
04 case貫通
A:case貫通
05配列の概要
A:配列の概要
06配列の定義
A:配列の定義
07 JVMメモリ分割
A:メモリ分割
08配列のメモリ
A:配列のメモリ
09インデックスを使用して配列の要素にアクセス
A:インデックスを使用して配列の要素にアクセスする
10配列のlengthプロパティ
A:lenth属性
11配列の要素に値を割り当てる
A:配列の要素に値を付ける
12配列の定義_2
A:配列フォーマットの定義2
13ループ配列
A:配列を巡る
B:練習
14配列でよく見られる例外
A:配列操作でよく見られる2つの異常
B:練習
15配列最大値
A:配列取得最大値の原理思想
16配列取得最大値コード実装
A:コード実装
17 2 D配列の定義
A二次元配列の役割
B定義形式
18 2 D配列要素へのアクセス
A:二次元配列へのアクセス
19 2 D配列メモリマップ
A:二次元配列メモリ図
20 D配列の定義とアクセス
A:2 D配列の定義とアクセス
B:二次元配列へのアクセス
22 2 D配列の遍歴
A:二次元配列遍歴
B:例:2 D配列を巡る
23 2 D配列の和を求める練習
Aは、例えば、1つの会社の3つの販売グループの各グループの総売上高および会社全体の売上高を統計する.以下に示す
Bコード実装
24ランダム点呼器ケーススタディ
Aランダム点呼器ケーススタディ
B:需要
C:分析:
25ランダムポイントラコード実装
A:分析
Bコード実装
25ランダムポイントラコード実装_2
Aコード最適化:
01 switch文の解釈
A:switch文の解釈
* a:switch , 。
* b: :
swtich( ){
case 1 :
;
break;
case 2 :
;
break;
case 3 :
;
break;
default:
;
break;
}
* c: : , case case , case , break,
* d: : switch case default break
* e:
1,
2,
3,
4,
5,
6,
7,
02 switch文の週判断
A:switch文の週判断
* a:
: int (1-7) , switch , .
* b:
public class SwitchDemo01 {
public static void main(String[] args) {
int week = 5;
switch (week) {
case 1:
System.out.println(" ");
break;
case 2:
System.out.println(" ");
break;
case 3:
System.out.println(" ");
break;
case 4:
System.out.println(" ");
break;
case 5:
System.out.println(" ");
break;
case 6:
System.out.println(" ");
break;
case 7:
System.out.println(" ");
break;
default:
System.out.println(" ...");
break;
}
}
}
03 switch文が受け入れるデータ型
A:switch文が受け入れるデータ型
* a:
switch ,
JDK1.0 - 1.4 byte short int char
JDK1.5 byte short int char enum( )
JDK1.7 byte short int char enum( ), String
04 case貫通
A:case貫通
* a: switch ,
case ,
, 。
* b: , ,
1~7
1、2、3、4、5 , 。
05配列の概要
A:配列の概要
* a:
, 、 。 50 , ,
50 , .
* b:
, 。 , 。
06配列の定義
A:配列の定義
* b: :
[] = new [ ];
* c: :
int[] x = new int[100];
* c:
1) :
2) []
3)
4) new
5) :
6)[]
7) , , ( , )
: ,
, 0, , -1
, (index), ,
, , [ ]
Java ,
, , length
: .length int
0, .length-1
07 JVMメモリ分割
A:メモリ分割
* JVM 5
* a: : CUP
* b: : JVM
* c: : class
* d: :
* e: :
08配列のメモリ
A:配列のメモリ
* int[] x; // int[]
* x = new int[100]; // 100
* , 。
* int[] x; x, int[],
int 。 x ,
* x = new int[100]; , x。
x ,
09インデックスを使用して配列の要素にアクセス
A:インデックスを使用して配列の要素にアクセスする
* 100 , 0。
* ( )
“x[0]、x[1]、……、x[98]、x[99]” 。
* , 0, “ -1”
10配列のlengthプロパティ
A:lenth属性
* a Java , ,
length
“ .length” , 。
* b
public class ArrayDemo01 {
public static void main(String[] args) {
int[] arr; //
arr = new int[3]; //
System.out.println("arr[0]=" + arr[0]); //
System.out.println("arr[1]=" + arr[1]); //
System.out.println("arr[2]=" + arr[2]); //
System.out.println(" :" + arr.length); //
}
}
11配列の要素に値を割り当てる
A:配列の要素に値を付ける
* a: , , 。
* ,
* b:
public class ArrayDemo02 {
public static void main(String[] args) {
int[] arr = new int[4]; // 4
arr[0] = 1; // 1 1
arr[1] = 2; // 2 2
//
System.out.println("arr[0]=" + arr[0]);
System.out.println("arr[1]=" + arr[1]);
System.out.println("arr[2]=" + arr[2]);
System.out.println("arr[3]=" + arr[3]);
}
}
12配列の定義_2
A:配列フォーマットの定義2
* a:
:
。
1、 [] = new [ ];
int[] arr = new int[4];
:
。
2、 [] = new []{ , ,……};
int[] arr = new int[]{1,2,3,4};
3、 [] = { , , ,……};
int[] arr = { 1, 2, 3, 4 };
13ループ配列
A:配列を巡る
* , ,
B:練習
public class ArrayDemo04 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 }; //
// for
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); //
}
}
}
, 5 arr
0~4。 for i 0~4
, ,
14配列でよく見られる例外
A:配列操作でよく見られる2つの異常
B:練習
public class ArrayDemo_4{
public static void main(String[] args){
//
//int[] arr = {5,2,1};
// 3 , 0,1,2
//System.out.println(arr[3]);//java.lang.ArrayIndexOutOfBoundsException: 3
//
int[] arr2 = {1,5,8};
System.out.println(arr2[2]);
arr2 = null; // arr2
System.out.println(arr2[2]);//java.lang.NullPointerException
}
}
15配列最大値
A:配列取得最大値の原理思想
* arr[0]
* arr , arr[0]
* arr
* arr[0]
16配列取得最大値コード実装
A:コード実装
public class ArrayDemo05 {
public static void main(String[] args) {
int[] arr = { 4, 1, 6, 3, 9, 8 }; //
int max = arr[0]; // max ,
// for
for (int x = 1; x < arr.length; x++) {
if (arr[x] > max) { // arr[x] max
max = arr[x]; // , arr[x] max
}
}
System.out.println("max=" + max); //
}
}
17 2 D配列の定義
A二次元配列の役割
* , ?
* , 。
B定義形式
* a :
* int[][] arr = new int[3][4];
* 3*4
* 3
* 4
* b
* int[][] arr = new int[3][];
* ,
* c
* int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
*
* , {1,2}、{3,4,5,6}、{7,8,9}
18 2 D配列要素へのアクセス
A:二次元配列へのアクセス
* :
class ArrayDemo08 {
public static void main(String[] args){
//
int[][] arr = new int[3][4];
System.out.println( arr );
System.out.println(" : " + arr.length);
// 3
System.out.println( arr[0] );
System.out.println( arr[1] );
System.out.println( arr[2] );
System.out.println(" ");
System.out.println( arr[0][0] );
System.out.println( arr[0][1] );// 1 2
System.out.println( arr[0][2] );
System.out.println( arr[0][3] );
System.out.println(" ");
System.out.println( arr[1][0] );
System.out.println( arr[1][1] );
System.out.println( arr[1][2] );
System.out.println( arr[1][3] );
System.out.println(" ");
System.out.println( arr[2][0] );
System.out.println( arr[2][1] );
System.out.println( arr[2][2] );
System.out.println( arr[2][3] );
}
}
19 2 D配列メモリマップ
A:二次元配列メモリ図
* :int[][] arr = new int[3][2];
* 3 ,
* .
20 D配列の定義とアクセス
A:2 D配列の定義とアクセス
* 1:
* int[][] arr = new int[3][];
* 2
* int[][] arr = {{1,2,4},{4,7},{0,9,3}};
*
B:二次元配列へのアクセス
:int[][] arr = {{1,2,4},{5,8,7},{0,9,3}};
7 {5,7} 2 , 7 {5,7} 2
arr[2][2] [2] {5,8,7}
[2] {5,8,7} 7
22 2 D配列の遍歴
A:二次元配列遍歴
int[][] arr = {{1,2,4},{4,7},{0,9,3}};
for arr , arr[i]
for for arr[i],
B:例:2 D配列を巡る
public class ArrayArrayDemo_2{
public static void main(String[] args){
int[][] arr = { {1,2,3},{4,5},{6,7,8,9},{0} };
// ,
for(int i = 0 ; i < arr.length ;i++){
// , arr[0] arr[1] arr[i]
for(int j = 0 ; j < arr[i].length; j++){
System.out.print(arr[i][j]);
}
System.out.println();
}
}
* C:
class ArrayDemo09 {
public static void main(String[] args){
int[][] arr2 = { {1,2},{3,4,5},{6,7,8,9,10} };
int sum2 = 0;
for (int i=0; i
23 2 D配列の和を求める練習
Aは、例えば、1つの会社の3つの販売グループの各グループの総売上高および会社全体の売上高を統計する.以下に示す
* {11, 12}
* {21, 22, 23}
* {31, 32, 33, 34} 。
Bコード実装
public class ArrayDemo10 {
public static void main(String[] args) {
int[][] arr = new int[3][]; // 3
arr[0] = new int[] { 11, 12 }; //
arr[1] = new int[] { 21, 22, 23 };
arr[2] = new int[] { 31, 32, 33, 34 };
int sum = 0; //
for (int i = 0; i < arr.length; i++) { //
int groupSum = 0; //
for (int j = 0; j < arr[i].length; j++) { //
groupSum = groupSum + arr[i][j];
}
sum = sum + groupSum; //
System.out.println(" " + (i + 1) + " :" + groupSum + " ");
}
System.out.println(" : " + sum + " ");
}
}
24ランダム点呼器ケーススタディ
Aランダム点呼器ケーススタディ
B:需要
* , 。
C:分析:
* 1)
* 2) 0 -1
* 3)
25ランダムポイントラコード実装
A:分析
:
1
2.
3.
Bコード実装
import java.util.Random;
public class CallName{
public static void main(String[] args){
// ,
// , ,String
String[] names = {" "," "," "," "," "," "," "," "," "," "};
// : ,
for(int i = 0 ; i < names.length ; i++){
System.out.println(names[i]);
}
System.out.println("=============");
//
// , , ,
Random ran = new Random();
// , 0-
int index = ran.nextInt(names.length);//index ,
System.out.println(names[index]);
}
}
25ランダムポイントラコード実装_2
Aコード最適化:
import java.util.Random;
public class CallName{
public static void main(String[] args){
String[] names = {" "," "," "," "," "," "," "," "," "," "};
System.out.println(names[new Random().nextInt(names.length)]);
}
}