Javaベース(switch、配列)


ポイント:1、フロー制御文switch 2、配列3、ランダム点呼器ケース
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)]);
		}
	}